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.

順序  選擇  循環  堅持  總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM