Qt Qstring字符串的查找、替换、切割操作

查找

直接上代码

#include <QtWidgets/QApplication>
#include <Qstring>
#include <Qdebug>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

	QString str = "xcjasd,asdasd,{,[name],[id]},[name],asda[name]sd}sa";
	qDebug() << str;
	//取括号之前
	int bpos = str.indexOf("{");//从前面开始查找
	int epos = str.lastIndexOf("}");//从后面开始查找
	qDebug() << str.left(bpos)<<bpos;//输出左边第N个字符串
	//取括号后面
	qDebug() << str.right(str.size()-epos-1);//输出右边第N个字符串
	//取括号中间的的
	QString str2 = str;//chop是直接对对象进行操作(会改变对象)
	str2.chop(str2.size()-str2.lastIndexOf("}"));//chop把字符串后N个丢弃
	qDebug() << str2;
	qDebug() << str2.right(str2.size()-str2.indexOf("{")-1);
	
    return a.exec();
}

结果

"xcjasd,asdasd,{,[name],[id]},[name],asda[name]sd}sa"
"xcjasd,asdasd," 14
"sa"
"xcjasd,asdasd,{,[name],[id]},[name],asda[name]sd"
",[name],[id]},[name],asda[name]sd"

以上对字符串处理函数进行了简单的使用以对“{ }”的前面、中间、后面的内容进行打印输出。

替换replace

#include <QtWidgets/QApplication>
#include <Qstring>
#include <Qdebug>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

	QString str = "xcjasd,asdasd,{,[name],[id]},[name],asda[name]sd}sa";
	QString str2 = str;
	qDebug() << str2;
	str2.replace("[name]","xiaoming");
	str2.replace("[id]", "007");
	qDebug() << str2;

    return a.exec();
}

结果

"xcjasd,asdasd,{,[name],[id]},[name],asda[name]sd}sa"
"xcjasd,asdasd,{,xiaoming,007},xiaoming,asdaxiaomingsd}sa"

以上可以看出替换操作也是直接对对象进行操作

字符串切割

#include <QtWidgets/QApplication>
#include <Qstring>
#include <Qdebug>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

	QString str = "xcjasd,asdasd,{,[name],[id]},[name],asda[name]sd}sa";
	QStringList list1 = str.split(",");
	for (int i = 0; i < list1.size(); i++)
	{
		qDebug() << list1[i];
	}

    return a.exec();
}

结果

"xcjasd"
"asdasd"
"{"
"[name]"
"[id]}"
"[name]"
"asda[name]sd}sa"

还可以通过正则表达式进行以上操作

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值