QStringList Class
QStringList クラスは、文字列のリストを提供します。詳細...
Header: | #include <QStringList> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Inherits: | QList |
- 継承メンバを含む全メンバのリスト
- QStringList は、暗黙的に共有されるクラスおよび文字列データのためのクラスの一部です。
注意:このクラスの関数はすべてリエントラントです。
パブリック関数
QStringList(const QList<QString> &other) | |
QStringList(const QString &str) | |
QStringList(QList<QString> &&other) | |
bool | contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QStringList | filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QStringList | filter(const QRegularExpression &re) const |
(since 6.7) QStringList | filter(const QStringMatcher &matcher) const |
(since 6.7) QStringList | filter(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QStringList | filter(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | indexOf(const QRegularExpression &re, qsizetype from = 0) const |
QString | join(const QString &separator) const |
QString | join(QChar separator) const |
QString | join(QLatin1StringView separator) const |
QString | join(QStringView separator) const |
qsizetype | lastIndexOf(QLatin1StringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | lastIndexOf(QStringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | lastIndexOf(const QString &str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const |
qsizetype | removeDuplicates() |
QStringList & | replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QStringList & | replaceInStrings(const QRegularExpression &re, const QString &after) |
QStringList & | replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QStringList & | replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QStringList & | replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
void | sort(Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QStringList | operator+(const QStringList &other) const |
QStringList & | operator<<(const QString &str) |
QStringList & | operator<<(const QList<QString> &other) |
QStringList & | operator<<(const QStringList &other) |
QStringList & | operator=(const QList<QString> &other) |
QStringList & | operator=(QList<QString> &&other) |
関連する非メンバー
詳細説明
QStringList はQList<QString> を継承しています。QList と同様、QStringList は暗黙的に共有されます。QStringListは、高速なインデックスベースのアクセスと、高速な挿入と削除を提供します。文字列リストを値パラメータとして渡すことは、高速かつ安全です。
QList の機能はすべて QStringList にも適用されます。たとえば、isEmpty() を使用してリストが空かどうかをテストしたり、append(),prepend(),insert(),replace(),removeAll(),removeAt(),removeFirst(),removeLast(),removeOne() などの関数を呼び出して QStringList を変更したりできます。さらに、QStringListには、文字列のリストを簡単に扱うための便利な関数がいくつか用意されています。
初期化
デフォルトのコンストラクタは空のリストを作成します。initializer-list コンストラクタを使用すると、要素を含むリストを作成できます:
QStringList fonts = { "Arial", "Helvetica", "Times" };
文字列の追加
リストに文字列を追加するには、insert()、append()、operator+=()、operator<<() 関数を使用します。
operator<<() 関数を使うと、複数の要素をリストに追加することができます:
fonts << "Courier" << "Verdana";
文字列の反復処理
文字列の操作
QStringListには、リストの内容を操作するための関数がいくつか用意されています。join ()関数を使用すると、文字列リスト内のすべての文字列を(オプションのセパレータを使用して)1つの文字列に連結できます。例えば
QString str = fonts.join(", "); // str == "Arial, Helvetica, Times, Courier"
連結する引数は、1文字でも文字列でもかまいません。
文字列を文字列リストに分割するには、QString::split ()関数を使用します:
QStringList list; list = str.split(','); // list: ["Arial", "Helvetica", "Times", "Courier"]
分割する引数には、1 文字、文字列、またはQRegularExpression を指定できます。
また、operator+() 関数を使用すると、2 つの文字列リストを 1 つに連結できます。文字列リストをソートするには、sort() 関数を使用します。
QString filterこの関数を使用すると、特定の部分文字列を含む (または特定の正規表現に一致する) 文字列のみを含む新しいリストを抽出できます:
QStringList monospacedFonts = fonts.filter(QRegularExpression("Courier|Fixed"));
contains() 関数は、リストに指定した文字列が含まれているかどうかを示し、indexOf() 関数は、指定した文字列が最初に出現するインデックスを返します。一方、lastIndexOf ()関数は、文字列が最後に出現した場所のインデックスを返します。
最後に、replaceInStrings ()関数は、文字列リスト内の各文字列に対して順番にQString::replace ()を呼び出します。例えば
QStringList files; files << "$QTDIR/src/moc/moc.y" << "$QTDIR/src/moc/moc.l" << "$QTDIR/include/qconfig.h"; files.replaceInStrings("$QTDIR", "/usr/lib/qt"); // files: [ "/usr/lib/qt/src/moc/moc.y", ...]
QStringも参照してください 。
メンバ関数ドキュメント
[noexcept]
qsizetype QStringList::indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
qsizetype QStringList::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
qsizetype QStringList::indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
インデックス位置from から前方を検索し、リスト内で最初にマッチしたstr のインデックス位置を返す。マッチする項目がない場合は -1 を返す。
cs がQt::CaseSensitive の場合(デフォルト)、文字列の比較は大文字小文字を区別します。
注: cs パラメーターは Qt 6.7 で追加されました。つまり、これらのメソッドは基底クラスから継承されたメソッドをオーバーロードするようになりました。それ以前は、これらのメソッドには2つのパラメータしかありませんでした。この変更はソース互換性があり、既存のコードは引き続き動作します。
lastIndexOf()も参照 。
[noexcept]
qsizetype QStringList::lastIndexOf(QLatin1StringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
qsizetype QStringList::lastIndexOf(QStringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
[noexcept]
qsizetype QStringList::lastIndexOf(const QString &str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
インデックス位置from から後方へ検索して、リスト内で最後にマッチしたstr のインデックス位置を返します。from が -1 (デフォルト) の場合、検索は最後の項目から始まります。一致する項目がない場合は -1 を返します。
cs がQt::CaseSensitive (デフォルト)の場合、文字列の比較では大文字と小文字が区別されます。
注: cs パラメーターは Qt 6.7 で追加されました。つまり、これらのメソッドは基底クラスから継承されたメソッドをオーバーロードするようになりました。それ以前は、これらのメソッドには2つのパラメータしかありませんでした。この変更はソース互換性があり、既存のコードは引き続き動作します。
indexOf()も参照 。
QStringList::QStringList(const QList<QString> &other)
other のコピーを構築する。
QStringList は暗黙的に共有されるため、この操作には一定の時間がかかります。これにより、関数から QStringList を返すのが非常に高速になります。共有インスタンスが変更された場合、そのインスタンスはコピーされます(コピー・オン・ライト)。
operator=()も参照してください 。
QStringList::QStringList(const QString &str)
与えられた文字列str を含む文字列リストを構築します。長いリストは、このように簡単に作成できます:
QStringList longerList = (QStringList() << str1 << str2 << str3);
append()も参照 。
QStringList::QStringList(QList<QString> &&other)
これはオーバーロードされた関数です。
構築に成功すると、other は空になります。
[noexcept]
bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
リストに文字列str が含まれていればtrue
を返し、そうでなければfalse
を返す。
cs がQt::CaseSensitive (デフォルト)の場合、文字列の比較は大文字小文字を区別する。
indexOf()、lastIndexOf()、QString::contains()も参照 。
[noexcept]
bool QStringList::contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
これはオーバーロードされた関数です。
リストにstr で見た Latin-1 文字列が含まれていればtrue
を返し、そうでなければfalse
を返す。
cs がQt::CaseSensitive の場合(デフォルト)、文字列の比較は大文字小文字を区別します。
indexOf()、lastIndexOf()、QString::contains()も参照 。
[noexcept]
bool QStringList::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
これはオーバーロードされた関数です。
リストに文字列str が含まれている場合はtrue
を返し、そうでない場合はfalse
を返す。
cs がQt::CaseSensitive の場合(デフォルト)、文字列の比較では大文字と小文字が区別されます。
QStringList QStringList::filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
部分文字列str を含むすべての文字列のリストを返します。
cs がQt::CaseSensitive (デフォルト)の場合、文字列の比較では大文字と小文字が区別されます。
QStringList list; list << "Bill Murray" << "John Doe" << "Bill Clinton"; QStringList result; result = list.filter("Bill"); // result: ["Bill Murray", "Bill Clinton"]
これは
QStringList result; for (const auto &str : std::as_const(list)) { if (str.contains("Bill")) result += str; }
contains()も参照 。
QStringList QStringList::filter(const QRegularExpression &re) const
これはオーバーロードされた関数である。
正規表現re にマッチするすべての文字列のリストを返す。
[since 6.7]
QStringList QStringList::filter(const QStringMatcher &matcher) const
これはオーバーロードされた関数である。
matcher にマッチした (つまりmatcher.indexIn()
がインデックス >= 0 を返す) 文字列のリストを返します。
大きなリストや長い文字列を含むリストを検索する場合は、QStringMatcher を使った方が速いかもしれません (ベンチマークを取るのが一番です)。
例えば
QStringList veryLongList; QStringMatcher matcher(u"Straße", Qt::CaseInsensitive); QStringList filtered = veryLongList.filter(matcher);
この関数は Qt 6.7 で導入されました。
contains()も参照してください 。
[since 6.7]
QStringList QStringList::filter(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
これはオーバーロードされた関数です。
この関数は Qt 6.7 で導入されました。
QStringList QStringList::filter(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
これはオーバーロードされた関数です。
qsizetype QStringList::indexOf(const QRegularExpression &re, qsizetype from = 0) const
これはオーバーロードされた関数です。
インデックス位置from から前方に検索して、リスト内のre に最初に完全に一致する項目のインデックス位置を返します。一致する項目がない場合は -1 を返します。
lastIndexOf()も参照してください 。
QString QStringList::join(const QString &separator) const
文字列リストのすべての文字列を、指定したseparator (空文字列でもよい) で各要素が区切られた単一の文字列に結合します。
QString::split()も参照 。
QString QStringList::join(QChar separator) const
この関数は join() をオーバーロードします。
QString QStringList::join(QLatin1StringView separator) const
この関数は join() をオーバーロードします。
QString QStringList::join(QStringView separator) const
これはオーバーロードされた関数です。
qsizetype QStringList::lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const
これはオーバーロードされた関数です。
インデックス位置from から後方に検索して、リスト内でre に最後に完全に一致したインデッ クス位置を返します。from が-1(デフォルト)の場合、検索は最後の項目から始まります。一致する項目がない場合は -1 を返します。
indexOf()も参照 。
qsizetype QStringList::removeDuplicates()
この関数は、リストから重複項目を削除します。項目をソートする必要はありません。元の順序を保持します。
削除された項目の数を返します。
QStringList &QStringList::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
after すべての文字列が、before のテキストからbefore のテキストに置換された文字列リストを返します。
注意: 空のbefore 引数を使うと、文字列の各文字の前後に after 引数が挿入される。
cs がQt::CaseSensitive の場合(デフォルト)、文字列の比較は大文字と小文字を区別する。
それ以外の場合は大文字小文字を区別しない:
QStringList list; list << "alpha" << "beta" << "gamma" << "epsilon"; list.replaceInStrings("a", "o"); // list == ["olpho", "beto", "gommo", "epsilon"]
QString::replace()も参照のこと 。
QStringList &QStringList::replaceInStrings(const QRegularExpression &re, const QString &after)
これはオーバーロードされた関数です。
文字列リストの各文字列内に出現する正規表現re をafter で置き換えます。文字列リストへの参照を返します。
例えば
QStringList list; list << "alpha" << "beta" << "gamma" << "epsilon"; list.replaceInStrings(QRegularExpression("^a"), "o"); // list == ["olpha", "beta", "gamma", "epsilon"]
例: キャプチャグループを含む正規表現では、after に出現する ˶1 ,˶2,... は、対応するキャプチャグループによってキャプチャされた文字列で置換されます。
例えば
QStringList list; list << "Bill Clinton" << "Murray, Bill"; list.replaceInStrings(QRegularExpression("^(.*), (.*)$"), "\\2 \\1"); // list == ["Bill Clinton", "Bill Murray"]
QStringList &QStringList::replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
これはオーバーロードされた関数です。
QStringList &QStringList::replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
これはオーバーロードされた関数です。
QStringList &QStringList::replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
これはオーバーロードされた関数です。
void QStringList::sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)
文字列のリストを昇順にソートする。
cs がQt::CaseSensitive (デフォルト)の場合、文字列の比較は大文字と小文字を区別します。
ソートはSTLのstd::sort()アルゴリズムで行われ、平均対数時間はO(nlogn)です。
文字列を任意の順序でソートしたい場合は、QMap クラスの使用を検討してください。たとえば、QMap<QString,QString> を使って大文字小文字を区別しない順序(たとえば、キーは文字列の小文字バージョン、値は文字列)を作ったり、QMap<int,QString> を使って整数インデックスで文字列をソートしたりすることができます。
QStringList QStringList::operator+(const QStringList &other) const
この文字列リストとother の文字列リストを連結した文字列リストを返す。
append()も参照のこと 。
QStringList &QStringList::operator<<(const QString &str)
与えられた文字列str をこの文字列リストに追加し、その文字列リストへの参照を返します。
append()も参照 。
QStringList &QStringList::operator<<(const QList<QString> &other)
これはオーバーロードされた関数です。
文字列リストにother を追加し、後者の文字列リストへの参照を返します。
QStringList &QStringList::operator<<(const QStringList &other)
これはオーバーロードされた関数です。
other の文字列リストを文字列リストに追加し、後者の文字列リストへの参照を返します。
QStringList &QStringList::operator=(const QList<QString> &other)
QList<QString> からのコピー代入演算子。other の文字列リストをこの文字列リストに代入する。
操作後、other と*this
は等しくなる。
QStringList &QStringList::operator=(QList<QString> &&other)
これはオーバーロードされた関数である。
移動代入演算子QList<QString>.other の文字列リストをこの文字列リストに移動する。
操作後、other は空になる。
関連する非メンバー
[alias]
QMutableStringListIterator
QStringListIterator 型定義は、QStringList に対する Java スタイルの非 const イテレータを提供する。
QStringList は、Javaスタイルのイテレータと STLスタイルのイテレータの両方を提供します。Javaスタイルの非定数反復子は、単に < > の型定義です。QMutableListIteratorQString
QStringListIterator およびQStringList::iteratorも参照してください 。
[alias]
QStringListIterator
QStringListIterator 型定義は、QStringList に対する Java スタイルの const イテレータを提供します。
QStringList は、Javaスタイルのイテレータと STLスタイルのイテレータの両方を提供します。Java スタイルの const イテレータは、単に < > の型定義です。QListIteratorQString
QMutableStringListIterator およびQStringList::const_iteratorも参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。