本文主要是讲QString的分割
这里,主要讲几个拆分字符的用法:
实例一,indexOf,mid,left,remove的用法:
#include <QCoreApplication>
#include <QString>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString str_source = "asda;weqw;123213;12312;asdsa";
str_source = str_source.trimmed();// 移除str_source字符串两端的空白字符
str_source += QString(";");
qDebug() << str_source;
while(str_source != "")
{
int nIndex = str_source.indexOf(";");
qDebug() << nIndex;// 由打印结果可以得到 nIndex 表示的是第一个分号之前的
// QString str_target = str_source.left(nIndex);// 这儿是取前nIndex位
QString str_target = str_source.mid(0,nIndex);// 从0开始取nIndex个
qDebug() << str_target;// 有结果可知 asda weqw 123213 12312 asdsa
str_source = str_source.remove(0,nIndex+1); // 把分号也去掉
}
return a.exec();
}
实例二:startsWith,trimmed,remove,indexOf,mid
#include <QCoreApplication>
#include <QString>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString str_source = "#asda#weqw#123213#12312#asdsa";
str_source = str_source.trimmed();// 移除str_source字符串两端的空白字符
str_source += QString("#"); // 便于一起操作
qDebug() << str_source;
if(str_source.startsWith("#"))
{
while(str_source.startsWith("#"))
{
str_source.remove(0,1);
if(str_source == NULL) // 有可能出现两个##相连的问题 和 结尾的#
{
continue;
}
int nIndex = str_source.indexOf("#"); // 到下一次出现时
QString str_target = str_source.mid(0,nIndex);// 从0开始取nIndex个
qDebug() << str_target;
str_source = str_source.remove(0,nIndex); // 把分号也去掉
}
}
return a.exec();
}
主要是防止自己什么时候忘了,记录一下用法。
欢迎大家加我的群:460952208