QString 类保存了16位Unicode 值,接下来看看如何操作字符串。
求长度
length()
字符串的组合
方式一 + +=
QString str = "Hello ";
str = str+ "world"; //str="Hello world"
str+="world"; //str="Hello world"
方式二 append()
QString str= "Welcome ";
QString str1="to ";
str.append(str1);
str.append("you"); //str="Welcome to you"
方式三 sprintf()
QString str;
str.sprintf("%s","Hello ");
str.sprintf("%s %s","Qt ","!"); //str="Hello Qt !"
方式四 arg()
QString str;
str=QString("%1 %2").arg("Thank ").arg("you"); //str="Thank you"
其他组合方法(不常用)
insert() 指定位置插入字符串
prepend() 开头插入字符串
replace() 新的字符串代替旧的
//首先说明一点,空白字符是指:\n \r \t 空格字符 4种
trimmed() 移除两端空白字符
simplified() 移除两端空白字符,并用单个空格字符代替字 符串中 出现的空白字符
获取用户输入的账号时很有用。
*****调用该方法后,字符串本身并没有被改变,只是这个方法的返回值是一个新的字符串*******
查询字符串
判断字符串是否以 某个字符串 开头 startsWith();
返回布尔类型
参数一:某个字符串。
参数二: Qt::CaseSensitive 区分大小写
Qt::CaseInsensitive 不区分大小写
判断字符串是否以 某个字符串 结尾 endWith(); 同上
判断一个字符串是否包含特定的字符串 contains(); 同上
比较
判断两个字符串是否相等1:
==
判断两个字符串是否相等2:
QString::compare("字符串2","字符串2",Qt::CaseInsensitive)
参数3:是否区分大小写
转换
转整型
toInt() //
eg:
QString str="123";
bool ok;
str.toInt(&ok,10);
//转换成功时ok=true ,失败时ok=false
//参数2: 字符串以0x开头 16
// 字符串以0开头 8
// 其他 10
类似的还有 toDouble()
toFloat()
toLong()
字符编码集的转换
qt提供的字符编码集转换函数会返回一个const char* 类型的QByteArray对象
QByteArray可以存储raw bytes和传统的8-bits的字符串,都是以'\0'结尾的,使用比char*更方便。
QString也可以存储字符串信息,但通常以16-bits形式Unicode方式存储,这有利于非ASCII和非Latin-1格式的数据的存储。
toLatin1() 返回一个Latin-1编码的8位字符串
toLocal8Bit() 返回一个系统本地编码的8位字符串
toUtf8() 返回一个UTF-8编码的8位字符串
一个NULL字符串一定为空
一个空的字符串不一定为NULL
截取
mid();
参数1:起始位置
参数2: 取串的长度
left(n);从左侧开始截取n个
right(n);从左侧开始截取n个
lastIndexOf()函数,返回字符串的最后一次出现的索引
indexOf()函数
本文详细介绍了Qt中的QString类,包括字符串的长度计算、组合、查询、比较和转换等操作,帮助理解其在Unicode环境下的使用。特别强调了NULL字符串与空字符串的区别。

5159

被折叠的 条评论
为什么被折叠?



