Qt 字符串截取常用函數


1、bool QString::startsWith  // 字符串以XX開頭,返回true,第二個參數可以設置大小寫敏感

QString str = "Bananas";
str.startsWith("Ban");     // returns true
str.startsWith("Car");     // returns false

 

2、bool QString::endsWith  // 字符串以XX結尾,返回false,第二個參數可以設置大小寫敏感

QString str = "Bananas";
str.endsWith("anas");         // returns true
str.endsWith("pple");         // returns false

 

3、QString QString::trimmed()  // 返回前后沒有空格的字符串

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

 

4、QString &QString::remove(int position, int n)  // 指定位置開始刪除n個字符,返回該字符引用

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

 

5、int QString::indexOf()  // 返回從指定位置開始第一次出現的索引位置,未找到返回-1。第二個參數可以設置大小寫敏感

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

 

6、int QString::lastIndexOf() 

// 返回此字符串中字符串str的最后一次出現的索引位置,從索引位置向后搜索。如果from是-1(默認值),搜索從最后一個字符開始;如果from是-2,則在倒數第二個字符處,依此類推。如果沒有找到str,則返回-1。第二個參數可以設置大小寫敏感

QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y);           // returns 6
x.lastIndexOf(y, 6);        // returns 6
x.lastIndexOf(y, 5);        // returns 2
x.lastIndexOf(y, 1);        // returns -1

 

7、QString QString::right(int n) const  // 返回包含該字符串的最右n個字符的子字符串。

QString x = "Pineapple";
QString y = x.right(5);      // y == "apple"

 

8、QString QString::left(int n) const  // 返回包含該字符串的最左n個字符的子字符串。

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

 

9、QString QString::mid(int position, int n = -1) const  // 返回一個包含該字符串的n個字符的字符串,從指定的位置索引開始。

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

 

10、QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const  //    在sep出現的地方將字符串分割成子字符串,並返回這些字符串的列表。可以設置大小寫敏感

QString str = QStringLiteral("a,,b,c");

 QStringList list1 = str.split(QLatin1Char(','));
 // list1: [ "a", "", "b", "c" ]

 QStringList list2 = str.split(QLatin1Char(','), Qt::SkipEmptyParts);
 // list2: [ "a", "b", "c" ]

 

練習:

提取“[]”中的數據

    QStringList list;
    QString tempStr;
    bool judge = false;

    QString str = "dsgdsg%$%^$[111]dfdff[2222](*&*([12346]))  dg[3333]  788 dddd";
    int a[] = {0,1,2};
    foreach(auto ch, str)
    {
        if(judge)
            tempStr += ch;
        if(ch == '[')
            judge = true;
        if(ch == ']')
        {
            judge = false;
            list.append(tempStr.left(tempStr.indexOf(']')));
            tempStr.clear();
        }
    }

    foreach(auto s, list)
    {
        qDebug()<<s;  //  輸出"111""2222""12346""3333"

    }

 


免責聲明!

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



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