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(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 を返す。

csQt::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 を返します。

csQt::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)

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

QList<QString> から移動して構築します。

構築に成功すると、other は空になります。

[noexcept] bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

リストに文字列str が含まれていればtrue を返し、そうでなければfalse を返す。

csQt::CaseSensitive (デフォルト)の場合、文字列の比較は大文字小文字を区別する。

indexOf()、lastIndexOf()、QString::contains()も参照

[noexcept] bool QStringList::contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

リストにstr で見た Latin-1 文字列が含まれていればtrue を返し、そうでなければfalse を返す。

csQt::CaseSensitive の場合(デフォルト)、文字列の比較は大文字小文字を区別します。

indexOf()、lastIndexOf()、QString::contains()も参照

[noexcept] bool QStringList::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

リストに文字列str が含まれている場合はtrue を返し、そうでない場合はfalse を返す。

csQt::CaseSensitive の場合(デフォルト)、文字列の比較では大文字と小文字が区別されます。

QStringList QStringList::filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

部分文字列str を含むすべての文字列のリストを返します。

csQt::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 引数が挿入される。

csQt::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)

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

文字列リストの各文字列内に出現する正規表現reafter で置き換えます。文字列リストへの参照を返します。

例えば

    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)

文字列のリストを昇順にソートする。

csQt::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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。