QT-QString字符串
本文最后更新于:1 年前
16-bit QChars ushort Unicode 4.0
封装了字符串处理功能
用cout显示时需转换
使用qDebug()函数,它可以把调试信息直接输出到控制台上。
输出到控制台上有两种方式:
(1) 将字符串当做参数传给qDebug()函数。(这种方法可以不用添加头文件#include
) 如 qDebug(“x:%d”,x); (2) 使用流输出的方法输出多个字符串。(需要添加 #include
头文件)如 qDebug() << “y:” << y; 使用cout输出时需要先进行类型转换,QChar类型的单个字符需先转换成ASCII码,如 cout << str[i].toLatin(); QString类型的字符串可以直接使用 str.toStdString();
int转QString
方法一:用QString的arg**()**函数可以完美解决其他类型转换为字符串的问题。
代码:
1 |
|
方法二:QString**::**number();
代码:
1 |
|
QString转int
直接调用toInt**()**函数
代码:
1 |
|
常用指令
空判断
== “ ” 空串和未初始化时都为真
isNull 对象未初始化
isEmpty 空串
字符串拼接
+=
str**.append(“test3”)**
格式化表示
1 |
|
类型转换(除格式化外的方法)
单个整型转字符串 QString num = QString::number(14);
单个浮点型转字符串 QString num = QString::number(14.6);
字符串转整型 str.toInt();
字符串转浮点型 str.toDouble();
表示一个浮点数的字符串不能使用toInt(),转换结果会是0;反之,表示一个整型的字符串使用toDouble()不会有问题。
遍历字符串
迭代器遍历
1 |
|
下标遍历
1 |
|
字符串查找
查找子串第一次出现的位置(若没有查到返回-1)
int pos = itstr.indexOf("xc");
查找字串第二次出现的位置(相当于设置了起始查找位置)
QString key = "xc";
int pos2 = str.indexOf(key,pos+key.size());
查找子串最后一次出现的位置
itstr.lastIndexOf("xc");
- 正则查找
itstr.indexOf(QRegExp("[0-9]+"));
- 正则查找
字符串截断
去除结尾子串(直接修改原字符串) itstr.chop(5);
最左侧开始截取指定长度 itstr.left(itstr.indexOf(“xc”));
最右侧开始截取指定长度 itstr.right(itstr.size()-itstr.indexOf(“xc”)-2);
字符串替换
直接修改原字符串 itstr.replace(“[name]”,”xiaoming”);
也可用正则表达式 itstr.replace(QRedExp(“[0-9]+”),”[NUM]”);
字符串切割
QStringList list1 = str.split(“,”);