QString常见用法详解(一)

小王子🤴 2020-12-02 22:47:42 14838
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用法,目前想到这些,之后想到再加

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 24 5 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
小王子🤴
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区