QStringList Class

QStringList 클래스는 문자열 목록을 제공합니다. 더 보기...

Header: #include <QStringList>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
상속합니다: 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는 암시적으로 공유됩니다. 빠른 인덱스 기반 액세스와 빠른 삽입 및 제거를 제공합니다. 문자열 목록을 값 매개변수로 전달하는 것은 빠르고 안전합니다.

QList 의 모든 기능은 QStringList에도 적용됩니다. 예를 들어 isEmpty()를 사용하여 목록이 비어 있는지 테스트하고 append(), prepend(), insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast(), removeOne()와 같은 함수를 호출하여 QStringList를 수정할 수 있습니다. 또한 QStringList는 문자열 목록을 더 쉽게 처리할 수 있는 몇 가지 편의 함수를 제공합니다.

초기화

기본 생성자는 빈 리스트를 생성합니다. 초기화 목록 생성자를 사용하여 요소가 있는 목록을 만들 수 있습니다:

    QStringList fonts = { "Arial", "Helvetica", "Times" };

문자열 추가하기

insert(), append(), operator+=() 및 operator<<() 함수를 사용하여 목록에 문자열을 추가할 수 있습니다.

operator<<() 함수를 사용하면 목록에 여러 요소를 편리하게 추가할 수 있습니다:

    fonts << "Courier" << "Verdana";

문자열 반복하기

컨테이너 반복하기를 참조하세요.

문자열 조작하기

QStringList는 목록의 내용을 조작할 수 있는 여러 함수를 제공합니다. join () 함수를 사용하여 문자열 목록의 모든 문자열을 하나의 문자열(선택적 구분 기호 사용)로 연결할 수 있습니다. 예를 들어

    QString str = fonts.join(", ");
     // str == "Arial, Helvetica, Times, Courier"

조인할 인수는 단일 문자 또는 문자열일 수 있습니다.

문자열을 문자열 목록으로 분할하려면 QString::split() 함수를 사용합니다:

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

분할 인수는 단일 문자, 문자열 또는 QRegularExpression 일 수 있습니다.

또한 operator+() 함수를 사용하면 두 개의 문자열 목록을 하나로 연결할 수 있습니다. 문자열 목록을 정렬하려면 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

목록에서 str 의 첫 번째 일치 항목의 인덱스 위치를 반환하며, 인덱스 위치 from 에서 앞으로 검색합니다. 일치하는 항목이 없으면 -1을 반환합니다.

csQt::CaseSensitive (기본값)인 경우 문자열 비교는 대소문자를 구분하고, 그렇지 않으면 대소문자를 구분하지 않습니다.

참고: cs 매개 변수는 Qt 6.7에 추가되었습니다. 즉, 이 메서드는 이제 베이스 클래스에서 상속된 메서드에 오버로드됩니다. 그 이전에는 이러한 메서드에 두 개의 매개변수만 있었습니다. 이 변경 사항은 소스와 호환되며 기존 코드는 계속 작동합니다.

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

목록에서 마지막으로 일치하는 str 의 인덱스 위치를 반환하며, 인덱스 위치 from 부터 역순으로 검색합니다. from 가 -1(기본값)이면 마지막 항목부터 검색이 시작됩니다. 일치하는 항목이 없으면 -1을 반환합니다.

csQt::CaseSensitive (기본값)인 경우 문자열 비교는 대소문자를 구분하고, 그렇지 않으면 대소문자를 구분하지 않습니다.

참고: cs 매개변수는 Qt 6.7에서 추가되었습니다. 즉, 이 메서드는 이제 베이스 클래스에서 상속된 메서드를 오버로드합니다. 그 이전에는 이러한 메서드에 두 개의 매개변수만 있었습니다. 이 변경 사항은 소스와 호환되며 기존 코드는 계속 작동합니다.

indexOf()도 참조하세요 .

QStringList::QStringList(const QList<QString> &other)

other 의 복사본을 생성합니다.

이 작업은 암시적으로 공유되므로 시간이 일정하게 걸립니다. 따라서 함수에서 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 에서 본 라틴-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)

before 텍스트가 발견될 때마다 모든 문자열에서 before 텍스트가 after 텍스트로 바뀐 문자열 목록을 반환합니다.

참고: 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)

이 함수는 오버로드된 함수입니다.

각 문자열 목록의 문자열에서 정규식 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)

문자열 목록을 오름차순으로 정렬합니다.

csQt::CaseSensitive (기본값)인 경우 문자열 비교는 대소문자를 구분하며, 그렇지 않으면 대소문자를 구분하지 않습니다.

정렬은 선형-로그 시간, 즉 O(n 로그 n)의 평균을 구하는 STL의 std::sort() 알고리즘을 사용하여 수행됩니다.

문자열을 임의의 순서로 정렬하려면 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 이터레이터를 제공합니다.

QStringListJava 스타일 이터레이터와 STL 스타일 이터레이터를 모두 제공합니다. Java 스타일 non-const 이터레이터는 QMutableListIterator<QString>에 대한 유형 정의입니다.

QStringListIteratorQStringList::iterator참조하세요 .

[alias] QStringListIterator

QStringListIterator 유형 정의는 QStringList 에 대한 Java 스타일 const 이터레이터를 제공합니다.

QStringListJava 스타일 이터레이터와 STL 스타일 이터레이터를 모두 제공합니다. Java 스타일 const 이터레이터는 QListIterator<QString>에 대한 유형 정의일 뿐입니다.

QMutableStringListIteratorQStringList::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.