このページでは

QStringList Class

QStringList クラスは、文字列のリストを提供します。詳細...

ヘッダー: #include <QStringList>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注:このクラスのすべての関数は再入可能です。

パブリック関数

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
(since 6.9) QStringList filter(const QLatin1StringMatcher &matcher) 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 です。QList と同様に、QStringListは暗黙的に共有されます。インデックスに基づく高速なアクセスに加え、高速な挿入および削除機能を提供します。文字列リストを値パラメータとして渡すことは、高速かつ安全です。

QList のすべての機能は、QStringListにも適用されます。たとえば、isEmpty() を使用してリストが空かどうかをテストしたり、append()、prepend()、insert()、replace()、removeAll()、removeAt()、removeFirst()、removeLast()、removeOne() などの関数を呼び出して、QStringListを変更したりすることができます。

初期化

デフォルトのコンストラクタは、空のリストを作成します。初期化リスト付きコンストラクタを使用すると、要素を含むリストを作成できます:

    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"

joinの引数には、単一の文字または文字列を指定できます。

文字列を文字列リストに分割するには、QString::split() 関数を使用します:

    QStringList list;
    list = str.split(',');
     // list: ["Arial", "Helvetica", "Times", "Courier"]

split関数の引数には、単一の文字、文字列、またはQRegularExpression を指定できます。

さらに、operator+() 関数を使用すると、2つの文字列リストを1つに結合することができます。文字列リストをソートするには、sort() 関数を使用します。

QString list には、特定の部分文字列を含む(または特定の正規表現に一致する)文字列のみを含む新しいリストを抽出できる `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」も参照してください 。

メンバ関数のドキュメント

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)

QList<QString> からの Move 構文。

構築が成功すると、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 (デフォルト)の場合、文字列の比較は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。

これはオーバーロードされた関数です。

[since 6.9] QStringList QStringList::filter(const QLatin1StringMatcher &matcher) const

matcher に一致するすべての文字列のリストを返します(つまり、matcher.indexIn() が 0 以上のインデックスを返すもの)。

大規模なリストや、長い文字列を含むリストを検索する場合、QLatin1StringMatcher を使用する方が高速になる可能性があります(確認するにはベンチマークを行うのが最善です)。

例:

    QStringList veryLargeList;
    QLatin1StringMatcher matcher("Street"_L1, Qt::CaseInsensitive);
    QStringList filtered = veryLargeList.filter(matcher);

この関数は Qt 6.9 で導入されました。

contains() およびfilter(const QStringMatcher &)も参照してください 。

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() およびfilter(const QLatin1StringMatcher &)も参照してください 。

[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

これはオーバーロードされた関数です。

[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

リスト内で `str ` に最初に一致する項目のインデックス位置を、インデックス位置 `from` から前方へ検索して返します。一致する項目がない場合は -1 を返します。

cs がQt::CaseSensitive (デフォルト)の場合、文字列の比較は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。

注: cs パラメータは Qt 6.7で追加されました。つまり、これらのメソッドは現在、基底クラスから継承されたメソッドをオーバーロードしています。それ以前は、これらのメソッドには2つのパラメータしかありませんでした。この変更はソース互換性があり、既存のコードは引き続き動作するはずです。

「lastIndexOf()」も参照してください 。

qsizetype QStringList::indexOf(const QRegularExpression &re, qsizetype from = 0) const

リスト内の `re ` と完全に一致する最初の要素のインデックス位置を、インデックス位置 `from` から前方へ検索して返します。一致する要素がない場合は -1 を返します。

これはオーバーロードされた関数です。

lastIndexOf()も参照してください 。

QString QStringList::join(const QString &separator) const

文字列リストに含まれるすべての文字列を、指定されたseparator (空文字列でも可)で各要素を区切って、1つの文字列に結合します。

QString::split()も参照してください 。

QString QStringList::join(QChar separator) const

この関数は、QStringList::join() をオーバーロードしています。

QString QStringList::join(QLatin1StringView separator) const

この関数は、QStringList::join() をオーバーロードしています。

QString QStringList::join(QStringView separator) const

これはオーバーロードされた関数です。

[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

リスト内で `str ` に一致する最後の要素のインデックス位置を、インデックス位置 `from` から逆方向に検索して返します。from が -1(デフォルト)の場合、検索は最後の要素から開始されます。一致する要素がない場合は -1 を返します。

cs がQt::CaseSensitive (デフォルト)の場合、文字列の比較は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。

注: cs パラメータは Qt 6.7 で追加されました。つまり、これらのメソッドは現在、基底クラスから継承されたメソッドをオーバーロードしています。それ以前は、これらのメソッドには 2 つのパラメータしかありませんでした。この変更はソース互換性があり、既存のコードは引き続き動作するはずです。

「indexOf()」も参照してください 。

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

キャプチャグループを含む正規表現の場合、 \1, \2, ..., がafter に含まれる場合、それらは対応するキャプチャグループによってキャプチャされた文字列に置換されます。

例:

    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 スタイルの非 const イテレータは、単に `QMutableListIterator<QString>` の型定義にすぎません。

QStringListIterator およびQStringList::iteratorも参照してください 。

[alias] QStringListIterator

QStringListIterator の型定義は、QStringList に対して Java スタイルの const イテレータを提供します。

QStringList JavaスタイルのイテレータとSTLスタイルのイテレータの両方を提供します。Javaスタイルのconstイテレータは、単にQListIterator<QString> の型定義にすぎません。

QMutableStringListIterator およびQStringList::const_iteratorも参照してください 。

© 2026 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.