QString常见用法详解(一)
QString常见用法详解(一)
QString 是 Qt 编程中常用的类,QString 存储字符串釆用的是 Unicode 码,每一个字符是一个 16 位的 QChar,而不是 8 位的 char,所以 QString 处理中文字符没有问题,而且一个汉字算作是一个字符。
字符串拼接
1. “+” 用于组合两个字符串,“+=” 用于将一个字符串追加到另一个字符串的末尾。
例:
QString str1 = "C";
str1 = str1 + "++"; //str1 = "C++"
QString str2 = "Q";
str2 += "T"; //str2 = "QT"
2. append() 和 prepend()
append() 在字符串的后面添加字符串,prepend() 在字符串的前面添加字符串。
例:
QString str1="Q",str2="T";
QString str3=str1;
str1.append (str2) ; //str1="QT"
str3.prepend (str2) ; //str3="TQ
3. QString::arg()
QString的arg()方法用于填充字符串中的%1,%2...为给定的参数
例:
QString str = QString("%1%2%3").arg("a").arg("b").arg("1"); // str = “a_b1”
它还有另外一种重载方法:
QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const
这个方法用于填充字符串中的%1,%2...为给定格式的整形数字,其中第一个参数是要填充的数字,第二个参数为最小宽度,第二个参数为进制,第四个参数为当原始数字长度不足最小宽度时用于填充的字符。
例:
QString str = QString("0x%1%2").arg(0, 2, 16, QChar('0')).arg(4, 2, 10, QChar('0')); // text = "0x00_04"
大小写转换
toUpper() 和 toLower()
toUpper() 将字符串内的字母全部转换为大写形式,toLower() 将字母全部转换为小写形式
例:
QString str1="Qt", str2;
str2=str1.toUpper(); //str1="QT"
str2=str1.toLower(); //str1="qt"
字符串长度
count()、size() 和 length()
count()、size() 和 length() 都返回字符串的字符个数,这 3 个函数是相同的,但是要注意,字符串中如果有汉字,一个汉字算一个字符。
QString str1="NI好"
int N=str1.count() //N=3
int N=str1.size() //N=3
int N=str1.length() //N=3
判断是否是空
isNull() 和 isEmpty()
两个函数都判读字符串是否为空,但是稍有差别。如果一个空字符串,只有“\0”,isNull() 返回 false,而 isEmpty() 返回 true;只有未赋值的字符串,isNull() 才返回 true。
QString str1, str2="";
qDebug() << str1.isNull () ; // true 未赋值字符串变量
qDebug() << str2.isNull () ; // false 只有"\0"的字符串,也不是 Null
qDebug() << str1.isEmpty(); // true
qDebug() << str2.isEmpty(); // true
去除空格
trimmed() 去掉字符串首尾的空格,simplified() 不仅去掉首尾的空格,中间连续的空格也用一个空格替换。
QString str1=" Qt Test ", str2;
str2=str1.trimmed () ; //str1="Qt Test"
str2=str1.simplified(); //str1="Qt Test"
拆分字符串
split函数用于拆分字符串
QString str = "1,2,3,4,5,6,7,8,9,10";
QStringList strList = str.split(',');//strList是字符串列表,内容是{1,2,3,4,5,6,7,8,9,10}
以上是常见的QString用法,目前想到这些,之后想到再加
- 分享
- 举报
-
浏览量:12295次2020-12-02 22:49:48
-
浏览量:640次2023-08-24 17:10:19
-
浏览量:3811次2020-10-26 11:47:36
-
浏览量:3048次2018-09-04 15:41:09
-
浏览量:994次2023-09-07 18:43:08
-
浏览量:3392次2020-04-30 11:40:12
-
浏览量:1078次2022-05-11 16:01:17
-
浏览量:3730次2017-11-15 11:12:04
-
浏览量:1028次2023-08-10 11:15:37
-
浏览量:6723次2020-11-25 22:43:12
-
浏览量:2516次2020-07-20 19:03:11
-
浏览量:3317次2020-07-29 11:56:51
-
浏览量:9678次2020-08-19 22:41:20
-
浏览量:3769次2017-11-21 13:44:59
-
浏览量:28236次2021-01-17 13:49:47
-
浏览量:4615次2017-11-22 11:47:47
-
浏览量:2013次2019-11-30 17:13:16
-
浏览量:1696次2019-09-19 16:24:38
-
浏览量:1934次2020-08-28 16:40:19
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
小王子🤴
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明