Qt是一种C++GUI程序开发框架,因此可以使用C++提供的字符串(1、C风格字符串:以”\0”结尾的字符数组2、字符串类String)也可以使用Qt自己的字符串类QString
使用QString类的好处:
采用16位Unicode值
使用隐式共享技术来节省内存和避免不必要的数据拷贝
跨平台兼容性
隐式共享:http://blog.csdn.net/seanyxie/article/details/6120048
QString类的部分操作:
1、 组合字符串:
1)使用重载的二元操作符 operator+ 或operator+= 将一个字符串加到另一个字符串末尾,使用方式类似于C++中的字符串类String
2)使用成员函数append() 也是将一个字符串加到另一个字符串末尾
3)使用成员函数sprintf() 将格式化数据写入字符串,类似C++中的sprintf
4)使用成员函数arg() 例子:QString str = QString(“%2 was born in %1.”).arg(“1982”).arg(John);
得到结果QString str = “John was born in 1982”; //”%2”被替换为”John” “%1”倍替换为”1982”
5)使用成员函数insert()在原字符串特定位置插入另一个字符串
6)使用成员函数prepend()在原字符串开头插入另一个字符串
7)使用成员函数replace()用指定字符串代替原字符串中某些字符
2、去掉空白字符(回车符’\r’换行符’\n’制表符’\t’空格符’ ’等) :
1)使用成员函数trimmed()移除字符串两端的空白字符
2)使用成员函数simplified()移除字符串两端的空白字符,并将字符串中间的空白字符替换为一个空格
3、分割/移除字符串:
(1)、使用成员函数split()将一个字符串分割为多个子串(QStringList)
(2)、使用成员函数remove()移除指定位置的多个字符
4、查询字符串数据:
(1)、成员函数startsWith() 判断一个字符串是否以某个指定的字符串开头
(2)、成员函数endsWith()判断一个字符串是否以某个指定的字符串结尾
(3)、成员函数contains()判断一个指定的字符/字符串是否出现过
(4)、成员函数right() 得到含有字符串最右n个元素的子串
(5)、成员函数left() 得到含有字符串最左n个元素的子串
(6)、成员函数mid() 得到含有字符串中下标为n开始的元素的子串
(7)、成员函数indexOf 获取一个指定的字符/字符串在字符串中的位置
(8)、成员函数count() 获取一个指定的字符/字符串在字符串中出现的次数
(9)、重载的数组访问操作符operator[]获取字符串中指定位置的字符(QChar)的引用
(10)、成员函数at() 作用与operator[]一致,但是更快,因为他不会引起深拷贝
5、比较字符串:
(1)、重载的运算符operator<、> 、==、<=、>=
(2)、成员函数compare
6、转换操作:
(1)、成员函数toInt() 、toDOuble()、toLong()等
(2)、静态成员函数number()将数字转化为某种机制的字符串
(3)、成员函数toLower()获取字符串的小写副本
(4)、成员函数toUpper()获取字符串的大小副本
7、NULL字符串与空字符串:
NULL字符串使用的QString类的默认构造函数或在构造函数中传递了0构造的QString类对象
空字符串是大小为0的字符串
NULL字符串一定是空字符串,空字符串不一定是NULL字符串
例如:
NULL字符串:
QString().isNull(); //true
QString().isEmpty(); //true
空字符串:
QString(“ ”).isNull(); //false
QString(“ ”).isEmpty(); //true