QStringList 初始化
1 QStringList qstrList; 2 qstrList<<"Android" << "Qt Creator" << "Java" << "C++"; 3 QStringListIterator strIterator(qstrList); 4 while (strIterator.hasNext()) 5 qDebug() << strIterator.next() << endl;
這里我們用QStringList添加QString字符串,用 <<來添加字符串,相當於Java中List的add()方法.
我們先學習一下QList的方法
1.增加字符串 append()
QStringList可以通過append(),或使用<< 來添加List元素,如
1 qstrList.append("python"); 2 qstrList << "PHP" ;
2.插入字符串 insert()
插入字符串insert方法可以將字符串插入到我們指定的list的位置:
qstrList.insert(0,"C#");
第一個參數為我們要插入的位置,后面的參數表示我們要插入的值。
3.替換字符串 replace()
通過replace()方法我們可以替換掉list中某一位置的值
qstrList.replace(0,"Web");
第一個參數為我們要替換的位置,后面的參數表示我們要替換的值。
4.刪除字符串 removeAt(), removeFirst(), removeLast(), and removeOne()
我們可以根據方法名,推斷出個方法的具體作用,根據實際需要選着對應的方法:
這里說一下removeOne()方法,他表示刪除一個具體的值,參數為我們list里的內容,其定義是:
bool removeOne(const T &value) ,返回值為bool類型,我們寫一下用法的例子
1 bool isflag = qstrList.removeOne("C#");//刪除一個指定的元素,刪除成功返回true,刪除失敗返回fasle
2 qDebug() << isflag << endl; 3 int n = qstrList.removeAll("Java");//刪除所有的指定的元素,返回刪除的元素個數
4 qDebug() << n << endl; 5 qstrList.removeAt(2);//刪除第三個元素
6 qstrList.removeFirst();//刪除第一個元素
7 qstrList.removeLast();//刪除最后一個元素
接下來我們學習一下QStringList的方法
1. 合並字符串使用join( )
1 QString str = fonts.join(","); 2 // str == "Android,Qt Creator,Java,C++"
2. 拆分字符串
1 QString str = "Android,Qt Creator, ,Java,C++"; 2 QStringList list1 = str.split(","); 3 // list1: [ "Android", "Qt Creator"," ", "Java", "C++" ]
4 QStringList list2 = str.split(",", QString::SkipEmptyParts); 5 // list2:[ "Android", "Qt Creator", "Java", "C++" ]
也就是說如果有QString::SkipEmptyParts,空項不會出現在結果。默認情況下,空項被保留
3. 索引
IndexOf()函數返回給定字符串的第一個出現的索引。
而lastIndexOf()函數,返回字符串的最后一次出現的索引。
1 QStringList qstrList; 2 qstrList<<"Java" << "Android" << "Qt Creator" << "Java" << "C++"; 3 int index = qstrList.indexOf("Java");//返回 0
4 int index = qstrList.indexOf("Java");//返回 3
4. 替換replaceInStrings()
1 QStringList files; 2 files << "$file/src/moc/moc.y" << "$file/src/moc/moc.l" << "$file/include/qconfig.h"; 3 files.replaceInStrings("$file", "/usr/file"); 4 // files: [ "/usr/file/src/moc/moc.y", ...]
5. 過濾filter()
可以讓你提取一個新的列表只包含這些字符串包含一個特定的字符串(或匹配特定正則表達式):
1 QStringList list; 2 list << "Bill Murray" << "John Doe" << "Bill Clinton"; 3 QStringList result; 4 result = list.filter("Bill"); 5 // result: ["Bill Murray", "Bill Clinton"] 6
7 //比較字符串的時候 8 //Qt::CaseSensitive 搜索區分大小寫 9 //Qt::CaseInSensitive 不區分大小寫
10 result = list.filter("bill",Qt::CaseInSensitive); 11 // result: ["Bill Murray", "Bill Clinton"]
總結:
QStringList類提供字符串列表。
QStringList繼承自QList < QString >。與QList一樣,QStringList是隱式共享的。它提供了快速的基於索引的訪問,以及快速插入和刪除。將字符串列表作為值參數傳遞是快速和安全的。
QList的所有功能也適用於QStringList。例如,您可以使用isEmpty()來測試列表是否為空,您可以調用諸如append()、prepend()、insert()、replace()、removeAll()、removeAt()、removeFirst()和removeOne()來修改QStringList的函數。
此外,QStringList提供了一些方便的函數,使字符串的處理列表變得更容易