QStringListの学習ノート

3474 ワード

会社のプロジェクトのため、QTを学ぶことを始めて、ここはいくつか学习のノートをして、1回の后で忘れて読むことができます.メモの内容が簡単だから、悪くない.参考ブログ:https://blog.csdn.net/u013360881/article/details/52170487

QStringList初期化

  QStringList qstrList;
  qstrList<

ここではQStringListでQString文字列を追加する、<<で文字列を追加する、JavaにおけるListのadd()メソッドに相当する.

まずQListの方法を学びましょう


1.文字列append()QStringListを追加するにはappend()または<<を使用してList要素を追加します.
qstrList.append("python");
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()メソッドについて説明します.彼は、特定の値を削除し、パラメータはリストの内容であり、その定義は、bool removeOne(const T&value)であり、戻り値はboolタイプであり、使用例を書きます.
bool isflag = qstrList.removeOne("C#");// , true, fasle
qDebug() << isflag << endl;
int n = qstrList.removeAll("Java");// , 
qDebug() << n << endl;
qstrList.removeAt(2);// 
qstrList.removeFirst();// 
qstrList.removeLast();// 

次にQStringListの方法を学びます


1.連結文字列join()の使用
QString str = fonts.join(",");
// str == "Android,Qt Creator,Java,C++"

2.文字列の分割
QString str = "Android,Qt Creator, ,Java,C++";
QStringList list1 = str.split(",");
// list1: [ "Android", "Qt Creator"," ", "Java", "C++" ]
QStringList list2 = str.split(",", QString::SkipEmptyParts);
// list2:[ "Android", "Qt Creator", "Java", "C++" ]

つまりQString::SkipEmptyPartsがあれば、空のアイテムは結果に現れません.デフォルトでは、空のアイテムは3のままです.インデックスIndexOf()関数は、指定された文字列の最初のインデックスを返します.一方lastIndexOf()関数は、文字列の最後に表示されたインデックスを返します.
QStringList qstrList;
 qstrList<

4.置換replaceInStrings()
QStringList files;
files << "$file/src/moc/moc.y" <<  "$file/src/moc/moc.l" <<  "$file/include/qconfig.h";
files.replaceInStrings("$file", "/usr/file");
// files: [ "/usr/file/src/moc/moc.y", ...]

5.フィルタ()をフィルタすると、新しいリストを抽出できます.これらの文字列には、特定の文字列(または特定の正規表現に一致する)のみが含まれます.
QStringList list;
list << "Bill Murray" << "John Doe" << "Bill Clinton";
QStringList result;
result = list.filter("Bill");
// result: ["Bill Murray", "Bill Clinton"]

//  
//Qt::CaseSensitive   
//Qt::CaseInSensitive    
result = list.filter("bill",Qt::CaseInSensitive);
// result: ["Bill Murray", "Bill Clinton"]

まとめ:


QStringListクラスは文字列リストを提供します.QStringListは、QListから継承される.QListと同様に、QStringListは暗黙的に共有される.インデックスベースの迅速なアクセスと、迅速な挿入と削除を提供します.文字列リストを値パラメータとして渡すのは高速で安全です.QListのすべての機能はQStringListにも適用されます.たとえば、isEmpty()を使用してリストが空かどうかをテストできます.append()、prepend()、insert()、replace()、removeAll()、removeAt()、removeFirst()、removeOne()などを呼び出して、QStringListの関数を変更できます.さらに、QStringListは、文字列の処理リストを容易にする便利な関数を提供します.