Qt中的 QString 和 QStringList 常用方法 (*****)

118 篇文章 11 订阅

目录

Qt中的QString和QStringList常用方法 (*****)

QList转换QString

Qt的QString用法,修改、截取,查找

------------------------------------------------

QList 的本质:

就是 “字符串数组”,而已??

但由于封装更高级,使得操作数组的方法,更简单了。

Qt容器:QStringList

  https://blog.csdn.net/kenfan1647/article/details/119079749

一、描述

QStringList 继承自 QList<QString>。 与 QList 一样,QStringList 也是隐式共享的。 它提供基于索引的快速访问以及快速插入和删除。字符串列表作为值参数传递快速又安全

一般我也是会用这个的,很多Qt的api接口也会用到这个类型作为接口。QList的所有功能也适用于QStringList。

参考:Qt扫盲-QStringList字符串列表总结  https://blog.csdn.net/qq_43680827/article/details/128789324

QStringList 的常规使用

总结:

QStringList类提供字符串列表。
QStringList继承自QList < QString >。与QList一样,QStringList是隐式共享的。它提供了快速的基于索引的访问,以及快速插入和删除。将字符串列表作为值参数传递是快速和安全的。
QList的所有功能也适用于QStringList。例如,您可以使用isEmpty()来测试列表是否为空,您可以调用诸如append()、prepend()、insert()、replace()、removeAll()、removeAt()、removeFirst()和removeOne()来修改QStringList的函数。
此外,QStringList提供了一些方便的函数,使字符串的处理列表变得更容易
————————————————
版权声明:本文为CSDN博主「SunnyFish-ty」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33485434/article/details/81027820

QList

  https://www.cnblogs.com/ShineLeBlog/p/14989552.html

0、说明

QList<T>

一个QList是存储相同类型一组数据列表

QStringList是从QList<String>继承而来,并添加了一些好用的方法,如join()、filter、split()。

QStringList和QList<QString>使用区别和注意事项

简单总结一下:

设置表头的时候,建议使用QStringList;
添加数据的时候,其实区别不是很大。

注意的是:语法不同而已,
QStringList:是像数组一样 nameList[i],这样子使用,
而QList是sexList.at(i)

  https://blog.csdn.net/weixin_51559926/article/details/113869724

============================

QList转换QString

(1)QStringList转QString

    QStringList list;
    list << "a" << "b" << "c" << "d";
    QString str = list.join(",");

(2)QString转QStringList

    QString string = "name1,name2,name3";
    QStringList list = string.split(","); // 如果string是空字符串,list会增加一个空字符串到列表里

————————————————
版权声明:本文为CSDN博主「于大博」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011086209/article/details/86582409

Qt的QString用法,修改、截取,查找

===========================

Qt中的QString和QStringList常用方法

QString定义

   QString s1 = "abc";
   QString s2("hello");

//字符串连接

    QString s = s1 + s2;

//组包

    s = QString("a = %1, b = %2, c = %3").arg(250).arg("hello").arg(22.22);
    qDebug()<<s; //输出结果:a = 250, b = hello, c = 22.22
   
     
    s = "a=250,b=hello,c=22.22";
    //参数表示按逗号分隔, 拆分出第0段到第1段, 保存到tmp
    QString tmp = s.section(",", 0, 1);
    qDebug()<<"tmp = "<<tmp; //输出结果:tmp="a=250,b=hello"
  
     
    s = "a=250,b=hello,c=22.22";
    //参数表示按逗号分隔, 拆分出第0段到第0段, 保存到tmp
    QString tmp = s.section(",", 0, 0);
    qDebug()<<"tmp = "<<tmp; //输出结果:tmp="a=250"
  
    tmp = tmp.section("=", 1, 1);
    qDebug()<<"tmp="<<tmp;   //输出结果:tmp="250";  

//QString转int

    int a = tmp.toInt();
    qDebug()<<"a="<<a;    //输出结果:a=250;

//int转QString组包方式转

    tmp = QString("%1").arg(123);
    qDebug()<<"tmp="<<tmp;  //输出结果:tmp="123"

//int转QString函数方式转

    tmp = QString::number(234);

//char *转QString

    const char * buf = "hello, world";
    QString ss = buf;
    qDebug()<<"ss = "<< ss;

//std::string转QString

    string s = "hello, world"
    QString ss = QString::fromStdString(s);
    qDebug()<<"ss = "<< ss;

//std::wstring转QString

    std::wstring wstr(L"你好, 世界");
    QString ss = QString::fromStdWString(wstr);
    qDebug()<<"ss = "<< ss;

//字符数组转QString

    char buf2[100] = "hello world";
    ss = buf2;
    qDebug()<<"ss = "<<ss;  

//QString转char *

    ss = "hello abc";

//如果没有中文(即字符串为ASCII):

    QByteArray tmp = ss.toLatin1();
    char * buf3 = tmp.data();

    //如果有中文(即字符串为unicode):

    QByteArray tmp = ss.toLocal8Bit();
    char * buf4 = tmp.data();

//替换QString中字符串

    QString text("text-decoration: none");
    text.replace("none", "underline");

//去除QString首尾的空格(包括'\t', '\n', '\v', '\f', '\r')

    QString text("   text-decoration: none   ");
    text = text.trimmed();

//字符移除操作

    QString test = "hello,china";
    QString tmp = test.remove(2, 4);    //从下标2的字符开始, 移除4个字符
    qDebug() << "test = " << test;    //输出hechina
    qDebug() << "tmp = " << tmp;    //输出hechina

//判断字符是否以某字符或字符串开始/结束(startsWith/endsWith)

    QString test= "@192.168.0.1";
    if(true == test.startsWith("@"))
    {
         //do something
    }

    //判断QString是否空

    QString().isEmpty();             // return true
    QString("").isEmpty();          // return true
    QString(" ").isEmpty();         // return false
    QString("abc").isEmpty();    // return false
     
    QString().isNull();              // return true
    QString("").isNull();           // return false
    QString(" ").isNull();          // return false
    QString("abc").isNull();     // return false

    //数字高位填0转为字符串

    int tmp = 8;
    QString strNew = QString("%1").arg(tmp, 4, 10, QLatin1Char('0'));  //4表示转为4位字符串, 10表示10进制. '0'表示填0
    qDebug() << strNew;        // 打印结果: 0008

QStringList

//定义

    QStringList list;

//添加字符串

    list << "hello";
    list << "world";
    list.append("abc");

//例子2

      QStringList chinaMonth;
            chinaMonth
                << QStringLiteral("正月")
                << QStringLiteral("二月")
                << QStringLiteral("三月")
                << QStringLiteral("四月")
                << QStringLiteral("五月")
                << QStringLiteral("六月")
                << QStringLiteral("七月")
                << QStringLiteral("八月")
                << QStringLiteral("九月")
                << QStringLiteral("十月")
                << QStringLiteral("冬月")
                << QStringLiteral("腊月")
                ;

//打印

    qDebug()<< "list ="<< list;

//遍历

    for(int i = 0; i< list.size();++i)
    {
        QString tmp = list.at(i);
        qDebug()<<"tmp ="<< tmp;
    }
    

//使用QStringList拆分QString

    QString str = "hello,world,abc,qt";
    QStringList list2 = str.split(",");
    qDebug()<<"list2="<<list2;
    //输出:list2=("hello","world","abc","qt");


//判断QStringList中是否包含某个成员
    bool b = list2.contains("123");

    
//移除QStringList中的成员

    list2.removeOne("abc");

————————————————
版权声明:本文为CSDN博主「Know your exciting」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baojiboy/article/details/119204089

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值