QStringList Class
Die Klasse QStringList stellt eine Liste von Zeichenketten bereit. Mehr...
Kopfzeile: | #include <QStringList> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Vererbt: | QList |
- Liste aller Member, einschließlich geerbter Member
- QStringList ist Teil von Implicitly Shared Classes und Classes for String Data.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
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) |
Zugehörige Nicht-Mitglieder
Detaillierte Beschreibung
QStringList erbt von QList<QString>. Wie QList ist QStringList implizit gemeinsam genutzt. Sie bietet schnellen indexbasierten Zugriff sowie schnelles Einfügen und Entfernen. Die Übergabe von Stringlisten als Wertparameter ist sowohl schnell als auch sicher.
Die gesamte Funktionalität von QList gilt auch für QStringList. Sie können zum Beispiel isEmpty() verwenden, um zu testen, ob die Liste leer ist, und Sie können Funktionen wie append(), prepend(), insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast() und removeOne() aufrufen, um eine QStringList zu verändern. Darüber hinaus bietet QStringList einige Komfortfunktionen, die den Umgang mit Listen von Strings erleichtern.
Initialisierung
Der Standardkonstruktor erzeugt eine leere Liste. Sie können den Konstruktor initializer-list verwenden, um eine Liste mit Elementen zu erstellen:
QStringList fonts = { "Arial", "Helvetica", "Times" };
Hinzufügen von Zeichenketten
Zeichenketten können mit den Funktionen insert(), append(), operator+=() und operator<<() zu einer Liste hinzugefügt werden.
operator<<() kann verwendet werden, um bequem mehrere Elemente zu einer Liste hinzuzufügen:
fonts << "Courier" << "Verdana";
Iterieren über die Strings
Siehe Iterieren über Containers.
Manipulation der Strings
QStringList bietet mehrere Funktionen, mit denen Sie den Inhalt einer Liste manipulieren können. Mit der Funktion join() können Sie alle Strings in einer Stringliste zu einem einzigen String (mit einem optionalen Trennzeichen) zusammenfügen. Ein Beispiel:
QString str = fonts.join(", "); // str == "Arial, Helvetica, Times, Courier"
Das zu verbindende Argument kann ein einzelnes Zeichen oder eine Zeichenkette sein.
Um eine Zeichenkette in eine Zeichenkettenliste aufzuteilen, verwenden Sie die Funktion QString::split():
QStringList list; list = str.split(','); // list: ["Arial", "Helvetica", "Times", "Courier"]
Das aufzuteilende Argument kann ein einzelnes Zeichen, eine Zeichenkette oder eine QRegularExpression sein.
Außerdem können Sie mit der Funktion operator+() zwei String-Listen zu einer einzigen verketten. Um eine Zeichenkettenliste zu sortieren, verwenden Sie die Funktion sort().
QString list bietet auch die Funktion filter(), mit der Sie eine neue Liste extrahieren können, die nur die Zeichenketten enthält, die eine bestimmte Teilzeichenkette enthalten (oder einem bestimmten regulären Ausdruck entsprechen):
QStringList monospacedFonts = fonts.filter(QRegularExpression("Courier|Fixed"));
Die Funktion contains() sagt Ihnen, ob die Liste eine bestimmte Zeichenkette enthält, während die Funktion indexOf() den Index des ersten Vorkommens der angegebenen Zeichenkette zurückgibt. Die Funktion lastIndexOf() hingegen gibt den Index des letzten Vorkommens der Zeichenkette zurück.
Schließlich ruft die Funktion replaceInStrings() nacheinander QString::replace() für jede Zeichenkette in der Zeichenkettenliste auf. Ein Beispiel:
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", ...]
Siehe auch QString.
Dokumentation der Mitgliedsfunktionen
[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
Gibt die Indexposition der ersten Übereinstimmung von str in der Liste zurück, wobei ab der Indexposition from vorwärts gesucht wird. Gibt -1 zurück, wenn kein Element übereinstimmt.
Wenn cs gleich Qt::CaseSensitive ist (Standardeinstellung), wird beim String-Vergleich zwischen Groß- und Kleinschreibung unterschieden; andernfalls ist der Vergleich unabhängig von der Groß- und Kleinschreibung.
Hinweis: Der Parameter cs wurde in Qt 6.7 hinzugefügt, d.h. diese Methoden überladen nun die von der Basisklasse geerbten Methoden. Davor hatten diese Methoden nur zwei Parameter. Diese Änderung ist quellkompatibel und bestehender Code sollte weiterhin funktionieren.
Siehe auch 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
Gibt die Indexposition der letzten Übereinstimmung von str in der Liste zurück, wobei ab der Indexposition from rückwärts gesucht wird. Ist from gleich -1 (Standard), beginnt die Suche beim letzten Eintrag. Gibt -1 zurück, wenn kein Element übereinstimmt.
Wenn cs gleich Qt::CaseSensitive ist (Standardeinstellung), wird beim Vergleich der Zeichenketten zwischen Groß- und Kleinschreibung unterschieden; andernfalls wird die Groß- und Kleinschreibung nicht berücksichtigt.
Hinweis: Der Parameter cs wurde in Qt 6.7 hinzugefügt, d.h. diese Methoden überladen nun die von der Basisklasse geerbten Methoden. Davor hatten diese Methoden nur zwei Parameter. Diese Änderung ist quellkompatibel und bestehender Code sollte weiterhin funktionieren.
Siehe auch indexOf().
QStringList::QStringList(const QList<QString> &other)
Konstruiert eine Kopie von other.
Dieser Vorgang benötigt konstante Zeit, da QStringList implizit gemeinsam genutzt wird. Das macht die Rückgabe einer QStringList aus einer Funktion sehr schnell. Wenn eine gemeinsam genutzte Instanz geändert wird, wird sie kopiert (copy-on-write), was lineare Zeit benötigt.
Siehe auch operator=().
QStringList::QStringList(const QString &str)
Konstruiert eine String-Liste, die die angegebene Zeichenkette enthält, str. Längere Listen lassen sich auf diese Weise leicht erstellen:
QStringList longerList = (QStringList() << str1 << str2 << str3);
Siehe auch append().
QStringList::QStringList(QList<QString> &&other)
Dies ist eine überladene Funktion.
Verschiebe-Konstruktionen von QList<QString>.
Nach einer erfolgreichen Konstruktion ist other leer.
[noexcept]
bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Gibt true
zurück, wenn die Liste die Zeichenfolge str enthält; andernfalls wird false
zurückgegeben.
Wenn cs gleich Qt::CaseSensitive ist (Standardeinstellung), wird beim Vergleich der Zeichenketten zwischen Groß- und Kleinschreibung unterschieden; andernfalls wird die Groß- und Kleinschreibung nicht berücksichtigt.
Siehe auch indexOf(), lastIndexOf(), und QString::contains().
[noexcept]
bool QStringList::contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Dies ist eine überladene Funktion.
Gibt true
zurück, wenn die Liste die von str betrachtete Latin-1-Zeichenkette enthält; andernfalls gibt sie false
zurück.
Wenn cs gleich Qt::CaseSensitive ist (Standardeinstellung), wird beim Vergleich der Zeichenketten zwischen Groß- und Kleinschreibung unterschieden; andernfalls wird die Groß- und Kleinschreibung nicht berücksichtigt.
Siehe auch indexOf(), lastIndexOf(), und QString::contains().
[noexcept]
bool QStringList::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Dies ist eine überladene Funktion.
Gibt true
zurück, wenn die Liste die Zeichenkette str enthält; andernfalls gibt sie false
zurück.
Wenn cs gleich Qt::CaseSensitive ist (Standardeinstellung), wird beim Vergleich der Zeichenketten zwischen Groß- und Kleinschreibung unterschieden; andernfalls wird die Groß- und Kleinschreibung nicht berücksichtigt.
QStringList QStringList::filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Gibt eine Liste aller Zeichenketten zurück, die die Teilzeichenkette str enthalten.
Wenn cs gleich Qt::CaseSensitive ist (Standardeinstellung), wird beim Vergleich der Zeichenketten zwischen Groß- und Kleinschreibung unterschieden; andernfalls wird die Groß- und Kleinschreibung nicht berücksichtigt.
QStringList list; list << "Bill Murray" << "John Doe" << "Bill Clinton"; QStringList result; result = list.filter("Bill"); // result: ["Bill Murray", "Bill Clinton"]
Dies ist äquivalent zu
QStringList result; for (const auto &str : std::as_const(list)) { if (str.contains("Bill")) result += str; }
Siehe auch contains().
QStringList QStringList::filter(const QRegularExpression &re) const
Dies ist eine überladene Funktion.
Gibt eine Liste aller Zeichenketten zurück, die mit dem regulären Ausdruck re übereinstimmen.
[since 6.7]
QStringList QStringList::filter(const QStringMatcher &matcher) const
Dies ist eine überladene Funktion.
Gibt eine Liste aller Zeichenketten zurück, die mit matcher übereinstimmen (d.h. für die matcher.indexIn()
einen Index >= 0 liefert).
Die Verwendung von QStringMatcher kann bei der Suche in großen Listen und/oder in Listen mit langen Zeichenfolgen schneller sein (der beste Weg, dies herauszufinden, ist ein Benchmarking).
Ein Beispiel:
QStringList veryLongList; QStringMatcher matcher(u"Straße", Qt::CaseInsensitive); QStringList filtered = veryLongList.filter(matcher);
Diese Funktion wurde in Qt 6.7 eingeführt.
Siehe auch contains().
[since 6.7]
QStringList QStringList::filter(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.7 eingeführt.
QStringList QStringList::filter(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Dies ist eine überladene Funktion.
qsizetype QStringList::indexOf(const QRegularExpression &re, qsizetype from = 0) const
Dies ist eine überladene Funktion.
Gibt die Indexposition der ersten exakten Übereinstimmung von re in der Liste zurück, wobei ab der Indexposition from vorwärts gesucht wird. Gibt -1 zurück, wenn kein Element übereinstimmt.
Siehe auch lastIndexOf().
QString QStringList::join(const QString &separator) const
Verbindet alle Strings der String-Liste zu einem einzigen String, wobei jedes Element durch den angegebenen separator (der ein leerer String sein kann) getrennt ist.
Siehe auch QString::split().
QString QStringList::join(QChar separator) const
Diese Funktion überlastet join().
QString QStringList::join(QLatin1StringView separator) const
Diese Funktion überlastet join().
QString QStringList::join(QStringView separator) const
Dies ist eine überladene Funktion.
qsizetype QStringList::lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const
Dies ist eine überladene Funktion.
Gibt die Indexposition der letzten exakten Übereinstimmung von re in der Liste zurück, wobei ab der Indexposition from rückwärts gesucht wird. Ist from gleich -1 (Standard), beginnt die Suche beim letzten Eintrag. Gibt -1 zurück, wenn kein Element übereinstimmt.
Siehe auch indexOf().
qsizetype QStringList::removeDuplicates()
Diese Funktion entfernt doppelte Einträge aus einer Liste. Die Einträge müssen nicht sortiert werden. Sie behalten ihre ursprüngliche Reihenfolge bei.
Gibt die Anzahl der entfernten Einträge zurück.
QStringList &QStringList::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Gibt eine Zeichenkettenliste zurück, in der bei jeder Zeichenkette der Text before durch den Text after ersetzt wurde, wo immer der Text before gefunden wurde.
Hinweis: Wenn Sie ein leeres before Argument verwenden, wird das after Argument vor und nach jedem Zeichen der Zeichenkette eingefügt.
Wenn cs gleich Qt::CaseSensitive ist (Standardeinstellung), wird beim Vergleich der Zeichenketten zwischen Groß- und Kleinschreibung unterschieden; andernfalls wird die Groß- und Kleinschreibung nicht berücksichtigt.
Ein Beispiel:
QStringList list; list << "alpha" << "beta" << "gamma" << "epsilon"; list.replaceInStrings("a", "o"); // list == ["olpho", "beto", "gommo", "epsilon"]
Siehe auch QString::replace().
QStringList &QStringList::replaceInStrings(const QRegularExpression &re, const QString &after)
Dies ist eine überladene Funktion.
Ersetzt jedes Vorkommen des regulären Ausdrucks re in jeder Zeichenkette der Liste durch after. Gibt einen Verweis auf die Zeichenkettenliste zurück.
Ein Beispiel:
QStringList list; list << "alpha" << "beta" << "gamma" << "epsilon"; list.replaceInStrings(QRegularExpression("^a"), "o"); // list == ["olpha", "beta", "gamma", "epsilon"]
Bei regulären Ausdrücken, die Erfassungsgruppen enthalten, wird das Vorkommen von \1, \2, ..., in after durch die von der entsprechenden Erfassungsgruppe erfasste Zeichenfolge ersetzt.
Ein Beispiel:
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)
Dies ist eine überladene Funktion.
QStringList &QStringList::replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Dies ist eine überladene Funktion.
QStringList &QStringList::replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Dies ist eine überladene Funktion.
void QStringList::sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)
Sortiert die Liste der Zeichenketten in aufsteigender Reihenfolge.
Wenn cs Qt::CaseSensitive ist (Standardeinstellung), wird beim Vergleich der Zeichenketten zwischen Groß- und Kleinschreibung unterschieden; andernfalls ist der Vergleich unabhängig von der Groß- und Kleinschreibung.
Die Sortierung erfolgt mit dem std::sort()-Algorithmus der STL, der im Durchschnitt linear-logarithmische Zeit benötigt, d. h. O(n log n).
Wenn Sie Ihre Zeichenketten in einer beliebigen Reihenfolge sortieren möchten, sollten Sie die Klasse QMap verwenden. Sie könnten z. B. QMap<QString, QString> verwenden, um eine Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung zu erstellen (z. B. wenn die Schlüssel Kleinbuchstaben-Versionen der Zeichenketten sind und die Werte die Zeichenketten), oder QMap<int, QString>, um die Zeichenketten nach einem ganzzahligen Index zu sortieren.
QStringList QStringList::operator+(const QStringList &other) const
Gibt eine Stringliste zurück, die die Verkettung dieser Stringliste mit der Stringliste other ist.
Siehe auch append().
QStringList &QStringList::operator<<(const QString &str)
Hängt die angegebene Zeichenkette str an diese Stringliste an und gibt einen Verweis auf die Stringliste zurück.
Siehe auch append().
QStringList &QStringList::operator<<(const QList<QString> &other)
Dies ist eine überladene Funktion.
Hängt die Stringliste other an die Stringliste an und gibt einen Verweis auf die letztere Stringliste zurück.
QStringList &QStringList::operator<<(const QStringList &other)
Dies ist eine überladene Funktion.
Hängt die Stringliste other an die Stringliste an und gibt einen Verweis auf die letztere Stringliste zurück.
QStringList &QStringList::operator=(const QList<QString> &other)
Kopieren des Zuweisungsoperators von QList<QString>. Weist die Liste der Zeichenketten von other dieser Zeichenkettenliste zu.
Nach dieser Operation sind other und *this
gleich.
QStringList &QStringList::operator=(QList<QString> &&other)
Dies ist eine überladene Funktion.
Verschiebe Zuweisungsoperator von QList<QString>. Verschiebt die Zeichenfolgenliste other in diese Zeichenfolgenliste.
Nach der Operation wird other leer sein.
Verwandte Nicht-Mitglieder
[alias]
QMutableStringListIterator
Die QStringListIterator Typdefinition bietet einen nicht-konstanten Iterator im Java-Stil für QStringList.
QStringList bietet sowohl Iteratoren im Java-Stil als auch Iteratoren im STL-Stil. Der Nicht-Konstanten-Iterator im Java-Stil ist einfach eine Typdefinition für QMutableListIterator<QString>.
Siehe auch QStringListIterator und QStringList::iterator.
[alias]
QStringListIterator
Die QStringListIterator-Typdefinition bietet einen Java-ähnlichen const-Iterator für QStringList.
QStringList bietet sowohl Iteratoren im Java-Stil als auch Iteratoren im STL-Stil. Der Java-style const Iterator ist einfach eine Typdefinition für QListIterator<QString>.
Siehe auch QMutableStringListIterator und 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.