QStringList Class
QStringList クラスは、文字列のリストを提供します。詳細...
ヘッダー | #include <QStringList> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
継承: | 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)
すべての文字列が、before テキストが見つかるとbefore テキストをafter テキストに置き換えた文字列リストを返す。
注意: 空の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スタイルの非定数イテレータを提供する。
QStringList はJavaスタイルのイテレータと STLスタイルのイテレータの両方を提供する。Javaスタイルのnonstでないイテレータは、単に < > の型定義です。QMutableListIteratorQString
QStringListIterator およびQStringList::iteratorも参照してください 。
[alias]
QStringListIterator
QStringListIterator 型定義は、QStringList に対する Java スタイルの const イテレータを提供する。
QStringList は、Javaスタイルのイテレータと STLスタイルのイテレータの両方を提供する。Java スタイルの const イテレータは、単に < > の型定義です。QListIteratorQString
QMutableStringListIterator およびQStringList::const_iteratorも参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.