이 페이지에서

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()` 함수를 사용하면 문자열 리스트에 포함된 모든 문자열을 (선택적으로 구분자를 사용하여) 하나의 문자열로 연결할 수 있습니다. 예를 들어:

    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+()` 함수를 사용하면 두 개의 문자열 리스트를 하나로 연결할 수 있습니다. 문자열 리스트를 정렬하려면 ` 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-constructs.

생성이 성공적으로 완료되면 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에서 추가되었으며, 즉 이 메서드들은 이제 기본 클래스에서 상속받은 메서드를 오버로드합니다. 그 이전에는 이 메서드들이 두 개의 매개변수만 가졌습니다. 이 변경 사항은 소스 호환성이 보장되며 기존 코드는 계속 작동해야 합니다.

lastIndexOf()도 참조하십시오 .

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

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

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

lastIndexOf()도 참조하십시오 .

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

문자열 목록에 포함된 모든 문자열을 하나의 문자열로 결합하며, 각 요소는 지정된 구분자 separator (빈 문자열일 수도 있음)로 구분됩니다.

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

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

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

참고: cs 매개변수는 Qt 6.7에서 추가되었으며, 즉 이 메서드들은 이제 기본 클래스에서 상속받은 메서드를 오버로드합니다. 그 이전에는 이 메서드들이 두 개의 매개변수만 가졌습니다. 이 변경 사항은 소스 호환성이 보장되며, 기존 코드는 계속 정상적으로 작동할 것입니다.

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(n log n)입니다.

문자열을 임의의 순서로 정렬하려면 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 스타일의 비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.