Qt中QStringList与QString的常用方法总结

 更新时间:2022年12月07日 09:29:21   作者:音视频开发老舅  
这篇文章主要为大家总结了Qt中QString 与 (QStringList | QByteArray)之间的转换,以及QString、QStringList的一些常用方法,感兴趣的可以收藏一下

本文汇集了QString 与 (QStringList | QByteArray)之间的转换,以及QString、QStringList的一些常用方法。

QString 转 QByteArray

//method<1>
QString src1("hello kandy");
QByteArray ba1 = src1.toUtf8();
 
//method<2>
QString src2("hello kandy");
QByteArray ba2 = src2.toLatin1();

QByteArray 转 QString

//method<1>
QByteArray ba1("hello world");
QString str1 = ba1;
 
//method<2>
QByteArray ba2("hello world");
QString str2;
str2.prepend(ba2);

QStringList 转 QString

QStringList listemp;
listemp << "Apple" << "Grape" << "Orange" << "Banana";
QString str = listemp.join(",");
qDebug() << "\r\nstr:" << str;
//输出结果如下
//str: "Apple,Grape,Orange,Banana"
QString转 QStringList
QString strtmp = "apple:5.99;grape:12.5;orange:6.99";
QStringList fruits = strtmp.split(";");
qDebug() << "\r\nfruits:" << fruits;
//fruits: ("apple:5.99", "grape:12.5", "orange:6.99")
 
//
for(int i=0; i < fruits.size(); i++)
{ 
   
    QStringList fruit = fruits[i].split((":"));
    qDebug() << "fruit:" << fruit;
    /* fruit: ("apple", "5.99") fruit: ("grape", "12.5") fruit: ("orange", "6.99") */
}

QStringList 其他常用方法

//使用QStringList拆分QString
QString str = "hello,world,I,am,kandy";
QStringList strlist = str.split(",");
qDebug() << "strlist=" << strlist;
//输出:strlist=("hello","world","I","am","kandy");
 
//判断QStringList中是否包含某个成员
bool bcontain = strlist.contains("kandy");
qDebug() << "bcontain=" << bcontain;
 
//移除QStringList中的成员
strlist.removeOne("world");
qDebug() << "after removeOne, strlist=" << strlist;

QString 其他常用方法

//QString定义
QString s1 = "hello";
QString s2("world");
 
//字符串连接
QString str = s1 + s2;
 
//组包
str = QString("a=%1, b=%2, c=%3").arg("hello").arg("world").arg("12.34");
qDebug() << str;//"a=hello, b=world, c=12.34"
 
str = "a=hello, b=world, c=12.34";
//参数表示按逗号分隔,拆分出第0段到第1段
QString tmp = str.section(",", 0, 1);
qDebug() << "tmp=" << tmp;
//tmp= "a=hello, b=world"
 
//参数表示按逗号分隔,拆分出第0段到第0段
tmp = str.section(",", 0, 0);
qDebug() << "tmp=" << tmp;
//tmp= "a=hello"
 
 
//QString转char *
 
//如果没有中文(即字符串为ASCII):
QString ss1 = "hello test";
QByteArray byte1 = ss1.toLatin1();
char * szbuff1 = byte1.data();
 
//如果有中文(即字符串为Unicode):
QString ss2 = QString::fromStdWString(L"你好, 世界");
QByteArray byte2 = ss2.toLocal8Bit();
char * szbuff2 = byte2.data();
 
//替换QString中字符串
QString text("text-decoration: none");
text.replace("none", "underline");
qDebug() << "after replace, text=" << text;
 
//字符移除操作
QString sztmp = QString("hello,china").remove(2, 4); //从下标2的字符开始, 移除4个字符
qDebug() << "sztmp=" << sztmp; //输出hechina
 
//判断字符是否以某字符或字符串开始/结束(startsWith/endsWith)
if (QString("@192.168.0.1#").startsWith("@"))
{ 
   
    qDebug() << "startsWith(\"@\")";
}
if (QString("@192.168.0.1#").endsWith("#"))
{ 
   
    qDebug() << "endsWith(\"#\")";
}
 
//判断QString是否空
qDebug() << "QString().isEmpty()" << QString().isEmpty();            //true
qDebug() << "QString("").isEmpty()" << QString("").isEmpty();        //true
qDebug() << "QString(" ").isEmpty()" << QString(" ").isEmpty();        //false
qDebug() << "QString(\"hi\").isEmpty()" << QString("hi").isEmpty();    //false
 
qDebug() << "QString().isNull()" << QString().isNull();                //true
qDebug() << "QString("").isNull()" << QString("").isNull();            //false
qDebug() << "QString(" ").isNull()" << QString(" ").isNull();        //false
qDebug() << "QString(\"hi\").isNull()" << QString("hi").isNull();    //false

到此这篇关于Qt中QStringList与QString的常用方法总结的文章就介绍到这了,更多相关Qt QStringList QString内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用stream实现一个简单的http下载器

    利用stream实现一个简单的http下载器

    这篇文章主要介绍了利用stream实现一个简单的http下载器的相关资料,需要的朋友可以参考下
    2015-03-03
  • C语言实现任意进制转换器

    C语言实现任意进制转换器

    这篇文章主要为大家详细介绍了C语言实现任意进制转换器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 浅谈C++ 虚函数

    浅谈C++ 虚函数

    这篇文章主要介绍了C++ 虚函数的相关资料,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下
    2020-09-09
  • C++ lambda函数详解

    C++ lambda函数详解

    小编可以明确告诉大家:lambda函数是C++11中最重要的,使用最广泛的,最具现代风格的内容,lambda函数的出现改变了C++编程的思维方式。所以快和小编学习一下C++11中lambda函数的使用吧
    2023-02-02
  • 详解c/c++赋值函数(重载=号运算符)

    详解c/c++赋值函数(重载=号运算符)

    大家都知道c++里的各种运算符都是用函数实现的,比如=就等号函数,所以当用=给一个对象赋值的时候,实际调用的是=号所对应的=号函数。下面通过本文给大家介绍c/c++赋值函数(重载=号运算符),感兴趣的朋友一起看看吧
    2018-08-08
  • C语言goto语句简单使用详解

    C语言goto语句简单使用详解

    C语言中提供了可以随意滥用的 goto语句和标记跳转的标号,本文主要介绍了C语言goto语句简单使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 解决C++ fopen按行读取文件及所读取的数据问题

    解决C++ fopen按行读取文件及所读取的数据问题

    今天小编就为大家分享一篇解决C++ fopen按行读取文件及所读取的数据问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • C++容器std::vector的swap()函数使用方式

    C++容器std::vector的swap()函数使用方式

    这篇文章主要介绍了C++容器std::vector的swap()函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 深入理解memmove()与memcpy()的区别以及实现方法

    深入理解memmove()与memcpy()的区别以及实现方法

    本篇文章是对memmove()与memcpy()的区别以及实现方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 简单分析C语言中指针数组与数组指针的区别

    简单分析C语言中指针数组与数组指针的区别

    这篇文章主要介绍了C语言中指针数组与数组指针的区别,是C语言入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11

最新评论