访问元素
#includeintmain(void){QTextStreamout(stdout);QStringa{"Eagle"};out<
运行效果:
【资料图】
EeEASSERT:"uint(i)
toclosethiswindow...
QString 是 QChars 的序列, 2 种访问其元素的方法:
它们的区别是,用 [] 的话要自行检查下标的有效性。
获取长度
#includeintmain(void){QTextStreamout(stdout);QStrings1="Eagle";QStrings2="Eagle\n";QStrings3="Eagle";out<
运行效果:
566Press
toclosethiswindow...
\n 和空格都会被算上。
动态构建
#includeintmain(){QTextStreamout(stdout);QStrings1="Thereare%1whiteroses";intn=12;out<
运行效果:
Thereare12whiterosesThetreeis5.65mhighWehave12lemonsand4orangesPress
toclosethiswindow...
%1、%2 被称为是 marker,我们可以通过 arg() 可以将 marker 替换成我们想要的内容。
如果你想动态地构建字符串的话,这个函数非常好用。
但是,如果需要大量重复地构建字符串的话,相比 sprintf(),Qstring::arg() 可能会存在性能问题。
提取子串
#includeintmain(void){QTextStreamout(stdout);QStringstr={"Thenighttrain"};out<
运行效果:
trainThenightnightThebigPress
toclosethiswindow...
3 种切法:
左切、右切、从中间切。
QStringRef 就是只读版本的 QString,一般用来指向某个 QString 的子串,这个类就是专门为了提升子串处理的性能而设计的。
分割处理
#includeintmain(void){QTextStreamout(stdout);inti;QStringstr="a,,b,c";QStringListlist1=str.split(",");for(i=0;i
运行效果:
0:a1:2:b3:cPress
toclosethiswindow...
遍历字符串
#includeintmain(void){QTextStreamout(stdout);QStringstr{"Therearemanystars."};//1.range-basedforloopfor(QCharqc:str){out<
运行效果:
Therearemanystars.Therearemanystars.Therearemanystars.Press
toclosethiswindow...
QString 由 QChars 构成,上面列举了 3 种遍历 QString 的方式。
比较字符串
#include#defineSTR_EQUAL0intmain(void){QTextStreamout(stdout);QStringa{"Rain"};QStringb{"rain"};QStringc{"rain\n"};if(QString::compare(a,b)==STR_EQUAL){out<<"a,bareequal"<
运行效果:
a,barenotequala,bareequalincaseinsensitivecomparisonb,carenotequalPress
toclosethiswindow...
比较字符串的 2 种方式:
修改内容
#includeintmain(void){QTextStreamout(stdout);QStringstr{"Lovely"};str.append("season");out<
运行效果:
LovelyseasonLovelyseaLovelygirlThestringisemptyPress
toclosethiswindow...
Qt 提供了大量的函数用于满足增删查改的需求,常用的:
搭配正则表达式
#includeintmain(void){QTextStreamout(stdout);QRegExprx("(\\d+)");QStringstr="a12b14c99d231e7";QStringListlist;intpos=0;while((pos=rx.indexIn(str,pos))!=-1){out<
运行效果:
1214992317Press
toclosethiswindow...