C++语言提供了两种字符串的实现:C风格的字符串,以'0‘结尾;std::string,即标准模版库中的类。Qt则提供了自己的字符串实现:QString,QString不用担心内存分配以及关于'0'结尾的这些注意事项
另外,与C风格的字符串不同,QString中间是可以包含'0'符号的,而length()函数则会返回整个字符串的长度,而不仅仅是从开始到'0'的长度。同Java的String类类似,QString也重载的+和+=运算符。
这两个运算符可以把两个字符串连接到一起,QString可以自动的对占用内存空间进行扩充,这种连接操作是很迅速的
示例:
QString的append()函数则提供了类似的操作,例如:
使用static的函数number()可以把数字转换成字符串。例如:
你也可以使用非static函数setNum()来实现相同的目的:
而一系列的to函数则可以将字符串转换成其他基本类型,例如toInt(), toDouble(), toLong()等。这些函数都接受一个bool指针作为参数,函数结束之后将根据是否转换成功设置为true或者false:
对于QString,Qt提供了很多操作函数,例如,使用mid()函数截取子串:
mid()函数接受两个参数,第一个是起始位置,第二个是取串的长度。如果省略第二个参数,则会从起始位置截取到末尾。正如上面的例子显示的那样。
函数left()和rigt()类似,都接受一个int类型的参数n,都是对字符串进行截取。不同之处在于,left()函数从左侧截取n个字符,而right()从右侧开始截取。下面是left()的例子:
函数startsWith()和endsWith()可以检测字符串是不是以某个特定的串开始或结尾,例如:
这段代码等价于
只不过前者要比后者更加清楚简洁,并且性能也更快.
QString还提供了replace()函数供实现字符串的替换功能;trimmed()函数去除字符串两侧的空白字符(注意,空白字符包括空格、Tab以及换行符,而不仅仅是空格);toLower()和toUpper()函数会将字符串转换成小写大写字符串;
remove()和insert()函数提供了删除和插入字符串的能力;simplified()函数可以将串中的所有连续的空白字符替换成一个,并且把两端的空白字符去除,例如" ”会返回一个空格" "。
将const char *类型的C风格字符串转换成QString也是很常见的需求,简单来说,QString的+=即可完成这个功能:
这里,我们将const char * 类型的字符串" (1870)"转换成为QString类型。
判断字符串是否为空
如:
判断字符串是否存在
如:
使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替。
如:
从字符串里查找相同的某个字符串str。
如:
指定位置插入字符串
如:
删除字符串中间某个字符。
如:
替换字符串中的某些字符。
如:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/14802.html