QString使用(拆分、拼接、补零等操作)

组合字符常用arg()函数

 QString test=QString("_haha_%1_hehe%2") .arg(int(2)).arg("aa");       //test="_haha_2_heheaa"

QString arg(const QString &a, int fieldWidth=0, QChar fillChar=QLatin1Char(' '))const; //参数1.连接的字符;参数2.字符所占据的宽度;参数3.如果字符的宽度小于参数2的宽度,则用参数3的字符填充。

 如下图所示:fieldWidth >0 ,代表的右对齐;   fieldWidth <0,代表的左对齐。如下图所示:

.

提取具有分割符的字符串用section()函数

 QString QString::section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const; //参数1,代表分隔符;参数2,提取字符的起始位置;参数3,提取字符的结束位置;参数4,表示特殊处理如跳过空串/大小写敏感。

QString path = "/usr/local/bin/myapp"; //首部为空
QString::SectionFlag flag = QString::SectionSkipEmpty; //跳过空串
path.section('/', 2, 2); //"local"
path.section('/', 3, 4); //"bin/myapp"。
path.section('/', 3, 3, flag); //"myapp",空字符串不被当做开始或结束的地方

 通过QStringList拼接字符串

QStringList test;
test << "hello" << "world" << "hahaha";
QString test1 = test.join(" ") + "!"; //"hello world hahaha!"

整数转字符不足补零

QString s1 = QString("%1").arg(11, 4, 10, QLatin1Char('0')); //"0011"
QString s2 = QString("%1").arg(11, 4, 16, QLatin1Char('0')); //"000B"

 QString在结构体中是直接当做4个字节的指针来占用内存的

 

posted @ 2018-08-15 17:26  xianyongchao  阅读(5998)  评论(0编辑  收藏  举报