• QString类(常用函数)


    QString类提供了一个Unicode文本和经典的C以零结尾的字符数组的抽象。

    (1)QString::QString()

    构造一个零字符串。这是一个不被分配任何东西的字符串,也就是说长度和数据指针都为0。如何理解?请看下面这个成员函数。

    (2)bool QString::isNull() const

    如果字符串为零,返回真。零字符串总是空的。

    1 QString a;          // a.unicode() == 0,a.length() == 0
    2 a.isNull();         // 真,因为a.unicode() == 0
    3 a.isEmpty();        //

    (3)bool QString::isEmpty() const

    如果字符串为空,也就是如果length() == 0,返回真。因此,零字符串也是空字符串。

    1 QString a("");
    2 a.isEmpty();        //
    3 a.isNull();         //
    4 
    5 QString b;
    6 b.isEmpty();        //
    7 b.isNull();         //

     (4)uint QString::length() const

    返回字符串的长度。

    零字符串和空字符串的长度都为0。

    (5)QString & QString::append(const QString & str)

    str添加到字符串中并且返回结果的引用。

    1 QString string = "Test";
    2 string.append( "ing" );        // string == "Testing"

     (6)QString QString::arg(const QString & a, int fieldwidth = 0) const

    这个函数将返回使用a来替换最低层出现的%ii为'1'或'2'或……'9')的字符串。

    fieldwidth值指定了填充到a中的最小空间。正值将产生右对齐文本,负值将产生左对齐文本。

    1 QString firstName( "liu" );
    2 QString lastName( "yong" );
    3 QString fullName;
    4 fullName = QString( "First name is '%1', last name is '%2'" )
    5      .arg( firstName )
    6      .arg( lastName );
    7 
    8  // fullName == First name is 'liu', last name is 'yong'

    (7)QChar QString::at(uint i) const

    返回在索引i处的字符,或者如果i超过字符串的长度返回0。

    1     const QString string( "abcdefgh" );
    2     QChar ch = string.at( 4 );
    3     // ch == 'e'

     (8)int QString::compare(const QString & s1, const QString & s2)  [静态]

    s1s2进行词典比较,如果s1小于、等于或者大于s2,就返回小于、等于或者大于0的整数。

    这个比较是专有的基于字符的数字Unicode值并且非常快,但是不是人们所期待的。排序用户界面字符串请考虑使用QString::localeAwareCompare()。

    1     int a = QString::compare( "def", "abc" );   // a > 0
    2     int b = QString::compare( "abc", "def" );   // b < 0
    3     int c = QString::compare(" abc", "abc" );   // c == 0

     (9)int QString::contains(QChar c, bool cs = TRUE) const

    返回在这个字符串中字符c出现的次数。

    如果cs为真,那么匹配是区分大小写的。如果cs为假,那么匹配是不区分大小写的。

    1     QString string( "Trolltech and Qt" );
    2     int i = string.contains( 't', FALSE );  // i == 3

     (10)bool QString::startsWith(const QString & s) const

    如果字符串以s开始,返回真,否则返回假。

    1     QString string("Bananas");
    2     bool a = string.startsWith("Ban");      //  a == TRUE

     (11)QString & QString::fill(QChar c, int len = -1 )

    填充字符串为len个字符的值c,并且返回字符串的引用。

    如果len为负数(默认),当前字符串长度被使用。

    1     QString str;
    2     str.fill( 'g', 5 );      // string == "ggggg"

     (12)int QString::find(const QRegExp & rx, int index = 0) const

    从位置index开始,找到常量正则表达式rx第一次出现的位置。如果index为-1,搜索从最后一个字符开始,如果是-1,从紧挨着最后一个字符的字符开始,依此类推。

    返回rx第一次出现的位置,如果rx没有被找到,返回-1。

    1     QString string( "bananas" );
    2     int i = string.find( QRegExp("an"), 0 );    // i == 1

     (13)QString & QString::insert(uint index, const QString & s)

    把s插入到字符串的index位置之前。

    如果index超过字符串的结尾,字符串被填充空格扩展到index长度并且然后s被添加,返回这个字符串的引用。

    1     QString string( "I like fish" );
    2     str = string.insert( 2, "don't " );
    3     // str == "I don't like fish"

     (14)QString QString::left(uint len) const

    返回包含字符串最左面的len个字符的子字符串。

    如果len超过字符串的长度,则整个字符串被返回。

    1     QString s = "Pineapple";
    2     QString t = s.left( 4 );    // t == "Pine"

     (15)int QString::localeAwareCompare(const QString & s1, const QString & s2) [静态]

    s1s2进行比较,如果s1小于、等于或者大于s2,就返回小于、等于或者大于0的整数。

    这个比较是基于本地的并且也是基于平台的方式。使用这个函数可以把排好序的字符串列表呈现给用户。

     (16)QString QString::lower() const

    返回由这个字符串转换的小写字符串。

    1     QString string( "TROlltECH" );
    2     str = string.lower();   // str == "trolltech"

     (17)QString QString::number (long n, int base = 10) [静态]

    一个把数字n转换为字符串的方便函数,n被基于base表示,默认为10,并且必须在2到36之间。

    1     long a = 63;
    2     QString str = QString::number( a, 16 );             // str == "3f"
    3     QString str = QString::number( a, 16 ).upper();     // str == "3F"

     (18)QString & QString::setNum(long n, int base = 10)

    设置字符串为打印的数据nn是基于base并且返回这个字符串的引用。

    base默认为10并且必须在2到36之间。

    1     QString string;
    2     string = string.setNum( 1234 );     // string == "1234"

     (19)int QString::toInt(bool *ok = 0, int base =10) const

    返回由这个字符串转化的int值,是基于base的,默认为10并且必须在2到36之间。

    如果转化发生错误,*ok被设置为假(除非ok为0,这是默认的)并且0被返回。否则*ok被设置为真。

    1     QString str( "FF" );
    2     bool ok;
    3     int hex = str.toInt( &ok, 16 );     // hex == 255, ok == TRUE
    4     int dec = str.toInt( &ok, 10 );     // dec == 0, ok == FALSE

     (20)QString QString::trimmed() const

    移除字符串两端的空白字符。

    1     QString str = "  lots\t of\nwhitespace\r\n ";
    2     str = str.trimmed();
    3     // str == "lots\t of\nwhitespace"

     (21) QString QString::mid(uint index, uint len = 0xffffffff) const

    返回包含这个字符串从index位置开始len个字符的字符串。

    如果这个字符串为空或者index超出范围,返回零。

    如果index + len超过这个字符串的长度,返回从index开始的整个字符串。

    1 QString sEmpty;
    2 QString sAfterMid0 = sEmpty.mid(1); //""
    3 
    4 QString sObject("I love china.");
    5 QString sAfterMid1 = sObject.mid(15);//""
    6 QString sAfterMid2 = sObject.mid(2); //"love china."
    7 QString sAfterMid3 = sObject.mid(2, sObject.length()); //"love china."
    8 QString sAfterMid4 = sObject.mid(2, sObject.length() - 2); //"love china."

     (22)QString & QString::remove(uint index, uint len)

    从字符串中的index位置开始移除len个字符并且返回这个字符串的引用。

    如果index超出字符串的长度,就什么也不发生。

    如果index在字符串中间,但是index加上len超过字符串的结尾,这个字符串将从index开始被截短。

    1 QString sObjectRem("I am a programmer.");
    2 QString sAfterRem0 = sObjectRem.remove(20, 3); //"I am a programmer."
    3 QString sAfterRem1 = sObjectRem.remove(2, 3);  //"I a programmer."
    4 QString sAfterRem2 = sObjectRem.remove(2, 20); //"I"

      (23)QString & QString::replace(uint index, uint len, const QString & s)

    从字符串中的index位置开始使用s替换len个字符,并且返回这个字符串的引用。

    如果index超出字符串的长度,就什么也不被删除。

    如果index有效并且index + len超过字符串的结尾,那么这个字符串将从index开始被截短,并且s被添加到字符串的结尾。

    1 QString sObjectRep("The big pig.");
    2 QString sAfterRep0 = sObjectRep.replace(20, 3, "liu"); //"The big pig."
    3 QString sAfterRep1 = sObjectRep.replace(4, 3, "liu");  //"The liu pig."
    4 QString sAfterRep2 = sObjectRep.replace(2, 20, "liu"); //"Thliu"
    5 
    6 QString sObjectRep2("abcdefghijk.");
    7 QString sAfterRep3 = sObjectRep2.replace(2, 20, "liu"); //"abliu"

      (24)待续....

    Good Good Study, Day Day Up.

    顺序  选择  循环  坚持  总结

    作者:kaizen
    声明:本文版权归作者和博客园共有,欢迎转载。但未经作者同意必须保留此声明,且在文章明显位置给出本文链接,否则保留追究法律责任的权利。
    签名:顺序 选择 循环
  • 相关阅读:
    Android Sensor Test
    [转]Android重力感应开发
    nexus5 root教程
    C# split字符串 依据1个或多个空格
    leetcode
    [ffmpeg 扩展第三方库编译系列] 关于须要用到cmake 创建 mingw32编译环境问题
    JAVA网络爬虫WebCollector深度解析——爬虫内核
    Apache htaccess 重写假设文件存在!
    javascript --- 事件托付
    LeetCode——Populating Next Right Pointers in Each Node II
  • 原文地址:https://www.cnblogs.com/Braveliu/p/2853117.html
Copyright © 2020-2023  润新知