QT::QString 很全的使用


Qt的QString類提供了很方便的對字符串操作的接口。

  1. 使某個字符填滿字符串,也就是說字符串里的所有字符都有等長度的ch來代替。
QString::fill ( QChar ch, int size = -1 )

例:

     QString str = "Berlin";
     str.fill('z'); // str == "zzzzzz"  str.fill('A', 2); // str == "AA"

2,從字符串里查找相同的某個字符串str。

int QString::indexOf ( const QString & str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

例如:

QString x = "sticky question";
     QString y = "sti";
     x.indexOf(y); // returns 0 x.indexOf(y, 1); // returns 10 x.indexOf(y, 10); // returns 10 x.indexOf(y, 11); // returns -1

3指定位置插入字符串

QString & QString::insert ( int position, const QString & str )

例如:

     QString str = "Meal";
     str.insert(1, QString("ontr")); // str == "Montreal"

3,判斷字符串是否為空。

bool QString::isEmpty () const

如:

     QString().isEmpty(); // returns true QString("").isEmpty(); // returns true QString("x").isEmpty(); // returns false QString("abc").isEmpty(); // returns false

4.判斷字符串是否存在。

bool QString::isNull () const

例如:

     QString().isNull(); // returns true QString("").isNull(); // returns false QString("abc").isNull(); // returns false

5,從左向右截取字符串

QString QString::left ( int n ) const

例如:

     QString x = "Pineapple";
     QString y = x.left(4); // y == "Pine"

6,從中間截取字符串。

QString QString::mid ( int position, int n = -1 ) const

例如:

  QString x = "Nine pineapples";
     QString y = x.mid(5, 4); // y == "pine" QString z = x.mid(5); // z == "pineapples"

7,刪除字符串中間某個字符。

QString & QString::remove ( int position, int n )

例如:

     QString s = "Montreal";
     s.remove(1, 4); // s == "Meal"

8,替換字符串中的某些字符。

QString & QString::replace ( int position, int n, const QString & after )

例如:

     QString x = "Say yes!";
     QString y = "no";
     x.replace(4, 3, y); // x == "Say no!"

9,以某個字符切割字符串。(最近經常用到的)

QString QString::section ( QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault ) const

例如:

復制代碼
 QString str;
     QString csv = "forename,middlename,surname,phone";
     QString path = "/usr/local/bin/myapp"; // First field is empty QString::SectionFlag flag = QString::SectionSkipEmpty;

     str = csv.section(',', 2, 2); // str == "surname" str = path.section('/', 3, 4); // str == "bin/myapp" str = path.section('/', 3, 3, flag); // str == "myapp"
復制代碼

10,把整型,浮點型,或其他類型轉化為QString

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

 

11,

如果我們希望檢查一個字符串是否是以某物開始或結束,我們可以使用startsWith()和endsWith()函數:

if (url.startsWith("http:") && url.endsWith(".png"))
    ...
這個要比下面的簡單快速:

if (url.left(5) == "http:" && url.right(4) == ".png")
...
使用==操作符的字符串比較是大小寫敏感的。 如果我們正在比較用戶級(user-visible)字符串,localeAwareCompare()經常是正確的選擇,並且如果我們希望大小寫不敏感,我們可以用toUpper()或toLower()。 例如:

if (fileName.toLower() == "readme.txt") 



相類似的還有好多重載函數,想深入了解,還是要看Qt幫助文檔的


免責聲明!

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



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