一、QString
C++本身提供两种字符串,传统的C语言型的以‘\0’结尾的字符数组和std::string类。与这两者不同,QString支持16位Unicode码以ASCll码和Latin-1码为自己,具有他们常用的数字值。
从概念上说,可以将QString看成QChar向量,QString可嵌入’\0‘字符。length()函数会返回包括嵌入的’\0‘字符的整个字符串大小。
QString支持如下操作
QString str = ”User :“;
QString userName;
... ...
1.字符串相加:
str += userName + ’\0‘;
2.字符串叠加(相当于+=)
str.append(userName);
3.字符串拼接及添加变量
(1)str.sprintf("%s %.1f%%","perfect comtition",100.0);
(2)str = QString(”perfect comtition %1“)。arg(value);//value = 100.0;
str将会是”perfect comtition 100.0“.
4.将数字转变为字符串
str = QString::number(59.6);
str.setNmber(9.6);
5.从字符串到数字的逆转换
bool ok;
double d = str.toDouble(&ok);
这样的函数有toInt()、toLongLong()、toDouble()等来完成字符串到数字的转换。
6.从字符串中找到自己需要的部分
QString str = "polluter pays principle";
qDebug << str.mid(9 , 4);//打印pays
mid()函数返回再给定位置(第一个参数)开始且达到给定长度(第二个参数)的子串;
如果省略第二个参数,那么将会返回给定位置到结束的字符串。
还有right()、left()函数
如打印polluter principle:
qDebug() << str.left(8) << str.right(9);
7.查明一个字符串是否包含一个特定的字符、子串或者正则表达式,可以使用QString中的indexOf()函数
QString str = ”the middle bit“;
int i = str.indexOf(”middle“);
得到的结果将是4,在失败时,indexOf()函数返回-1。
8.查明字符串是否以某个字符(串)开始或者结束。
url.startsWith("http");url.endWith(".png")
9.区分大小写
toLower(),toUpper();
10.字符串代替、删除、插入
QString str = "a cloudy day";
(1) str.replace(2,6,"sunny"); //代替操作
(2)str.remove(2,6);//删除cloudy
(3)str.insert(2,"sunny ");//”a sunny cloudy day"
以上第一个参数均是字符串定位位置,(1)(2)中第二个参数是长度,(3)是插入内容
11.删除字符中两边的空白(如空格、换行等)
str.trimmed();即可
12.分割字符串
QString str = “pollute pays principle”;
QStringList words = str.split(“ ”);
此时QStringList 中存储了三个字符串 “pollute”、“pays”、“principle” 。