• Qt之Qstring


                                                      Qstring 类的特点

     QString类有如下特点:

    (1)采用 Unicode 编码,所以一个QChar 类对象占用两个字节。
    (2)使用隐式共享技术来节省内存和减少不必要的数据备份
    (3)跨平台使用,不用考虑字符串的平台兼容性。
    (4) QString类直接支持字符串和数字之间的相互转换。
    (5)QString 类直接支持字符串之间的大小比较(按照字典顺序)。
    (6) QString类直接支持不同编码下的字符串转换。

    (7)QString 类直接支持 std::string 和 std::wstring之间的相互转换。
    (8) QString类直接支持正则表达式的使用。

    1. 初始化

    通常有两种方法可以初始化 QString 类的对象。
    第一种方法是通过构造函数。
    QString类的构造函数较多,通常有如下几种用法://使用QChar数组中长度为size个的字符来构造字符串,即初始化

    QString ( const QChar * unicode, int size );
    QString ( const QChar * unicode ); //使用 QChar 数组构造 QString,结尾以'\o'结QString ( QChar ch );

    QString ( QChar ch );//使用 QChar 数组构造 QString,结尾以'\o'结
    Qstring ( int size, QChar ch ); //使用size个ch字符来构造
    QString ( const QLatin1String & str ); //使用**单字节编码**的 str 构造 QStringQString ( const QString & other ); 
    QString ( const QByteArray & ba ); //使用其他QString 引用构造新的 QStrina//使用字符串常量构造 QString
    QString ( const char * str );//使用字节数组构造 QString

    例如,以下代码创建一个长度为5的字符串,内容为“Hello” :

    QString str("Hello");
    效果等同于直接赋值:QString str = "Hello";

    又比如:static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };
    // 使用了构造函数QString ( const QChar * unicode, int size );
    QString str(data, 4);
    第二种方法是使用 resize()设置字符串的大小,并初始化字符数组中的每个元素。
    比如:QString str;
    str.resize (4);
    str.resize (4);
    str[0] = QChar ('U');

    str[1] = QChar('n');

    str[2] = QChar (0x10e3);

    str[3] = QChar(0x03a3);


    QString 类的索引值从 0 开始,和 C++的数组一样。

    调用 resize)函数后,新分配的字节有未定义的值。
    要将所有字节设置为同一个特定值,可以调用 fillO函数,该函数的原型声如下:QString::fill ( QChar ch, int size = -1 );
    其中,ch 是要填充的字符;
    size 是要填充的字符个数,即填充 size 个 ch 字符。
    比如:QString str = "Berlin";
    str.fill('z');// str == "zzzzzz"

  • 相关阅读:
    Redis实战之缓存:查询、添加缓存、更新缓存、缓存预热、缓存穿透、缓存雪崩、缓存击穿 解决方案及实例代码
    推荐系统实践读书笔记-05利用上下文信息
    数据结构知识(一)
    内核学习——1、list_head
    Java手写双向广度优先和双向广度优先应用拓展案例
    数据结构-静态链表创建
    遍历set、tuple、list哪个速度最快呢?
    Mathtype与word字号对照+Mathtype与word字号对照
    最详细的next国际化方案
    【学习】深度学习代码各个步骤都是为了啥(二)
  • 原文地址:https://blog.csdn.net/lsh11111/article/details/136205079