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"
}