QString截断(string截断)
最近写一个Qt小程序用到了QString的截断,在绝对路径中取文件的名字,再拼接到新路径中,用到了两个方法:
方法一:由于对QString没有深入了解,所以采用的QString–>string–>QString,代码如下:
std::string pur = purposelist[i].toStdString();//都转换为string |
用这种方法出现的问题是,string中的中文字符转到QString会乱码…
方法二:QString直接进行截断拼接
//QString截断学习 |
复盘,刚接触qt的自己好蠢,事实上 qstring可能是c++下最好用的string了
QString存储字符串采用的是Unicode码,每一个字符是一个十六位的QChar, 而不是八位的char, 所以处理中文字符没有问题, 而且一个汉字是一个字符。
函数
1、append()和prepend()
append()在字符串后面添加字符串,prepend()在字符串前面添加字符串。
如下:
QString str1="卖", str2 = "拐"; |
2、toUpper()和toLower()
toUpper()是将字符串中的字母全部转化为大写字母,toLower()是将所有的字母全部转化为小写字母。
如下:
QString str1 = "Hello World", str2; |
3、cont()、size()和length()
count()、size()和length()这三个函数都是返回字符串的个数的,这3个函数是相同的。注意:一个汉字算是一个字符
如下:
QString str = "NI 好"; |
4、trimmed()和simplified()
trimmed()是去掉字符串首尾的空格,simplified()不仅去掉首尾的空格,中间连续的空格也能用一个空格替换。
如下:
QString str1 = " Are you ok? "; |
5、indexOf()和lastIndexOf()
查找字符串的位置
如下:
QString str1 = "G:\Qt5Book\Qt5.9Study\qw.cpp"; |
6、isNull()和isEmpty()
这两个函数都用来判断字符串是否为空,但是稍微有差别。如果一个空字符串,只有”\0”,isNull()返回false,而isEmpty()返回true;只有未赋值的字符串,isNull()才返回true。
如下:
QString str1, str2=""; |
7、contains()
判断字符串内是否包含某个字符,可指定是否区分大小写。
如下:
QString str1 = "G:\Qt5Book\Qt5.9Study\qw.cpp"; |
8、endsWith()和startsWith()
startsWith()判断是否以某个字符串开头,endsWith()表示是否以某个字符串结尾。
如下:
QString str1 = "G:\Qt5Book\Qt5.9Study\qw.cpp"; |
9、left()和right()
left()表示取一个字符串左边多少个字符,right()表示取一个字符串右边多少个字符。注意:一个汉字被当作一个字符;
QString str2, str1="学生姓名, 男, 1984-3-4, 汉族, 山东"; |
10、section()
从字符串中提取以se为分隔符,从start到end的字符串。
QString str1 = "G:\Qt5Book\Qt5.9Study\qw.cpp", str2; |