牛骨文教育服务平台(让学习变的简单)
博文笔记

(五)Qt中的字符串类

创建时间:2017-02-06 投稿人: 浏览次数:435

Qt是一种C++GUI程序开发框架,因此可以使用C++提供的字符串(1、C风格字符串:以””结尾的字符数组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、去掉空白字符(回车符’ ’换行符’ ’制表符’ ’空格符’ ’等) :

         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

 

 

 

 

 

 

 

 

 

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。