QString Class
QString クラスは、Unicode 文字列を提供します。詳細...
| ヘッダー: | #include <QString> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- 非推奨のメンバ
- QString は、「暗黙的に共有されるクラス」および「文字列データ用クラス」の一部です。
注:このクラスのすべての関数は再入可能です。
QString の比較
| カテゴリ | 比較可能な型 | 説明 |
|---|---|---|
| strong | QString | |
| strong | QChar、QLatin1StringView 、const char16_t *、QStringView 、およびQUtf8StringView 。 | |
| strong | QByteArray、QByteArrayView 、および const char *。 | バイト配列と比較する場合、その内容は UTF-8 として解釈されます。 |
public 型
| ConstIterator | |
| Iterator | |
| enum | NormalizationForm { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC } |
| enum | SectionFlag { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps } |
| flags | SectionFlags |
| const_iterator | |
| const_pointer | |
| const_reference | |
| const_reverse_iterator | |
| difference_type | |
| iterator | |
| pointer | |
| reference | |
| reverse_iterator | |
| size_type | |
| value_type |
パブリック関数
| QString() | |
| QString(QCharch) | |
| QString(QLatin1StringViewstr) | |
(since 6.8) | QString(QStringViewsv) |
| QString(const QByteArray&ba) | |
| QString(const char*str) | |
(since 6.1) | QString(const char8_t*str) |
| QString(const QChar*unicode, qsizetypesize= -1) | |
| QString(qsizetypesize, QCharch) | |
| QString(const QString&other) | |
| QString(QString&&other) | |
| ~QString() | |
| QString & | append(const QString&str) |
| QString & | append(QCharch) |
| QString & | append(QLatin1StringViewstr) |
(since 6.0) QString & | append(QStringViewv) |
(since 6.5) QString & | append(QUtf8StringViewstr) |
| QString & | append(const QByteArray&ba) |
| QString & | append(const char*str) |
| QString & | append(const QChar*str, qsizetypelen) |
| QString | arg(Args &&...args) const |
| QString | arg(const T&a, intfieldWidth= 0, QCharfillChar= u' ') const |
| QString | arg(Ta, intfieldWidth= 0, intbase= 10, QCharfillChar= u' ') const |
| QString | arg(Ta, intfieldWidth= 0, charformat= 'g', intprecision= -1, QCharfillChar= u' ') const |
(since 6.6) QString & | assign(QAnyStringViewv) |
(since 6.6) QString & | assign(InputIteratorfirst, InputIteratorlast) |
(since 6.6) QString & | assign(qsizetypen, QCharc) |
| const QChar | at(qsizetypeposition) const |
| QChar & | back() |
| QChar | back() const |
| QString::iterator | begin() |
| QString::const_iterator | begin() const |
| qsizetype | capacity() const |
| QString::const_iterator | cbegin() const |
| QString::const_iterator | cend() const |
| void | chop(qsizetypen) |
| QString | chopped(qsizetypelen) && |
| QString | chopped(qsizetypelen) const & |
| void | clear() |
| int | compare(QCharch, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| int | compare(QLatin1StringViewother, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| int | compare(QStringViews, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| int | compare(const QString&other, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| QString::const_iterator | constBegin() const |
| const QChar * | constData() const |
| QString::const_iterator | constEnd() const |
| bool | contains(const QRegularExpression&re, QRegularExpressionMatch*rmatch= nullptr) const |
| bool | contains(const QString&str, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| bool | contains(QCharch, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| bool | contains(QLatin1StringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| bool | contains(QStringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| qsizetype | count(const QString&str, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| qsizetype(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const | count(const QRegularExpression&re) const |
| qsizetype | count(QCharch, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
(since 6.0) qsizetype | count(QStringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| QString::const_reverse_iterator | crbegin() const |
| QString::const_reverse_iterator | crend() const |
| QChar * | data() |
| const QChar * | data() const |
| void | detach() |
| QString::iterator | end() |
| QString::const_iterator | end() const |
| bool | endsWith(const QString&s, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| bool | endsWith(QCharc, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| bool | endsWith(QLatin1StringViews, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| bool | endsWith(QStringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
(since 6.1) QString::iterator | erase(QString::const_iteratorfirst, QString::const_iteratorlast) |
(since 6.5) QString::iterator | erase(QString::const_iteratorit) |
| QString & | fill(QCharch, qsizetypesize= -1) |
(since 6.0) QString | first(qsizetypen) && |
(since 6.0) QString | first(qsizetypen) const & |
| QChar & | front() |
| QChar | front() const |
| qsizetype | indexOf(QLatin1StringViewstr, qsizetypefrom= 0, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| qsizetype | indexOf(const QRegularExpression&re, qsizetypefrom= 0, QRegularExpressionMatch*rmatch= nullptr) const |
| qsizetype | indexOf(const QString&str, qsizetypefrom= 0, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| qsizetype | indexOf(QCharch, qsizetypefrom= 0, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| qsizetype | indexOf(QStringViewstr, qsizetypefrom= 0, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| QString & | insert(qsizetypeposition, const QString&str) |
| QString & | insert(qsizetypeposition, QCharch) |
| QString & | insert(qsizetypeposition, QLatin1StringViewstr) |
(since 6.0) QString & | insert(qsizetypeposition, QStringViewstr) |
(since 6.5) QString & | insert(qsizetypeposition, QUtf8StringViewstr) |
| QString & | insert(qsizetypeposition, const QByteArray&str) |
| QString & | insert(qsizetypeposition, const char*str) |
| QString & | insert(qsizetypeposition, const QChar*unicode, qsizetypesize) |
| bool | isEmpty() const |
| bool | isLower() const |
| bool | isNull() const |
| bool | isRightToLeft() const |
| bool | isUpper() const |
| bool | isValidUtf16() const |
(since 6.0) QString | last(qsizetypen) && |
(since 6.0) QString | last(qsizetypen) const & |
| qsizetype | lastIndexOf(const QRegularExpression&re, qsizetypefrom, QRegularExpressionMatch*rmatch= nullptr) const |
| qsizetype | lastIndexOf(const QString&str, qsizetypefrom, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
(since 6.3) qsizetype | lastIndexOf(QCharch, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(QLatin1StringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(QStringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(const QRegularExpression&re, QRegularExpressionMatch*rmatch= nullptr) const |
(since 6.2) qsizetype | lastIndexOf(const QString&str, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QCharch, qsizetypefrom, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QLatin1StringViewstr, qsizetypefrom, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QStringViewstr, qsizetypefrom, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| QString | left(qsizetypen) && |
| QString | left(qsizetypen) const & |
| QString | leftJustified(qsizetypewidth, QCharfill= u' ', booltruncate= false) const |
| qsizetype | length() const |
(since 6.0) int | localeAwareCompare(QStringViewother) const |
| int | localeAwareCompare(const QString&other) const |
(since 6.8) qsizetype | max_size() const |
| QString | mid(qsizetypeposition, qsizetypen= -1) && |
| QString | mid(qsizetypeposition, qsizetypen= -1) const & |
| QString | normalized(QString::NormalizationFormmode, QChar::UnicodeVersionversion= QChar::Unicode_Unassigned) const |
(since 6.10) QString & | nullTerminate() |
(since 6.10) QString | nullTerminated() && |
(since 6.10) QString | nullTerminated() const & |
| QString & | prepend(const QString&str) |
| QString & | prepend(QCharch) |
| QString & | prepend(QLatin1StringViewstr) |
(since 6.0) QString & | prepend(QStringViewstr) |
(since 6.5) QString & | prepend(QUtf8StringViewstr) |
| QString & | prepend(const QByteArray&ba) |
| QString & | prepend(const char*str) |
| QString & | prepend(const QChar*str, qsizetypelen) |
| void | push_back(const QString&other) |
| void | push_back(QCharch) |
| void | push_front(const QString&other) |
| void | push_front(QCharch) |
| QString::reverse_iterator | rbegin() |
| QString::const_reverse_iterator | rbegin() const |
| QString & | remove(const QRegularExpression&re) |
| QString & | remove(QCharch, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString & | remove(const QString&str, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString & | remove(qsizetypeposition, qsizetypen) |
| QString & | remove(QLatin1StringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
(since 6.5) QString & | removeAt(qsizetypepos) |
(since 6.5) QString & | removeFirst() |
(since 6.1) QString & | removeIf(Predicatepred) |
(since 6.5) QString & | removeLast() |
| QString::reverse_iterator | rend() |
| QString::const_reverse_iterator | rend() const |
| QString | repeated(qsizetypetimes) const |
| QString & | replace(qsizetypeposition, qsizetypen, const QString&after) |
| QString & | replace(const QRegularExpression&re, const QString&after) |
| QString & | replace(QCharbefore, QCharafter, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString & | replace(QCharc, QLatin1StringViewafter, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString & | replace(QCharch, const QString&after, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString & | replace(QLatin1StringViewbefore, QLatin1StringViewafter, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString & | replace(QLatin1StringViewbefore, const QString&after, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString & | replace(const QString&before, QLatin1StringViewafter, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString & | replace(const QString&before, const QString&after, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString & | replace(qsizetypeposition, qsizetypen, QCharafter) |
| QString & | replace(qsizetypeposition, qsizetypen, const QChar*after, qsizetypealen) |
| QString & | replace(const QChar*before, qsizetypeblen, const QChar*after, qsizetypealen, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| void | reserve(qsizetypesize) |
| void | resize(qsizetypesize) |
| void | resize(qsizetypenewSize, QCharfillChar) |
(since 6.8) void | resizeForOverwrite(qsizetypesize) |
| QString | right(qsizetypen) && |
| QString | right(qsizetypen) const & |
| QString | rightJustified(qsizetypewidth, QCharfill= u' ', booltruncate= false) const |
| QString | section(QCharsep, qsizetypestart, qsizetypeend= -1, QString::SectionFlagsflags= SectionDefault) const |
| QString | section(const QRegularExpression&re, qsizetypestart, qsizetypeend= -1, QString::SectionFlagsflags= SectionDefault) const |
| QString | section(const QString&sep, qsizetypestart, qsizetypeend= -1, QString::SectionFlagsflags= SectionDefault) const |
| QString & | setNum(intn, intbase= 10) |
| QString & | setNum(longn, intbase= 10) |
| QString & | setNum(qlonglongn, intbase= 10) |
| QString & | setNum(qulonglongn, intbase= 10) |
| QString & | setNum(shortn, intbase= 10) |
| QString & | setNum(uintn, intbase= 10) |
| QString & | setNum(ulongn, intbase= 10) |
| QString & | setNum(ushortn, intbase= 10) |
| QString & | setNum(doublen, charformat= 'g', intprecision= 6) |
| QString & | setNum(floatn, charformat= 'g', intprecision= 6) |
| QString & | setRawData(const QChar*unicode, qsizetypesize) |
| QString & | setUnicode(const QChar*unicode, qsizetypesize) |
(since 6.9) QString & | setUnicode(const char16_t*unicode, qsizetypesize) |
(since 6.9) QString & | setUtf16(const char16_t*unicode, qsizetypesize) |
| void | shrink_to_fit() |
| QString | simplified() const |
| qsizetype | size() const |
(since 6.8) QString & | slice(qsizetypepos, qsizetypen) |
(since 6.8) QString & | slice(qsizetypepos) |
(since 6.0) QString | sliced(qsizetypepos, qsizetypen) && |
(since 6.0) QString | sliced(qsizetypepos, qsizetypen) const & |
(since 6.0) QString | sliced(qsizetypepos) && |
(since 6.0) QString | sliced(qsizetypepos) const & |
| QStringList | split(const QString&sep, Qt::SplitBehaviorbehavior= Qt::KeepEmptyParts, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| QStringList | split(const QRegularExpression&re, Qt::SplitBehaviorbehavior= Qt::KeepEmptyParts) const |
| QStringList | split(QCharsep, Qt::SplitBehaviorbehavior= Qt::KeepEmptyParts, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| void | squeeze() |
| bool | startsWith(const QString&s, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| bool | startsWith(QCharc, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| bool | startsWith(QLatin1StringViews, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| bool | startsWith(QStringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) const |
| void | swap(QString&other) |
| CFStringRef | toCFString() const |
| QString | toCaseFolded() const |
| double | toDouble(bool*ok= nullptr) const |
(since 6.6) emscripten::val | toEcmaString() const |
| float | toFloat(bool*ok= nullptr) const |
| QString | toHtmlEscaped() const |
| int | toInt(bool*ok= nullptr, intbase= 10) const |
| QByteArray | toLatin1() const |
| QByteArray | toLocal8Bit() const |
| long | toLong(bool*ok= nullptr, intbase= 10) const |
| qlonglong | toLongLong(bool*ok= nullptr, intbase= 10) const |
| QString | toLower() const |
| NSString * | toNSString() const |
| short | toShort(bool*ok= nullptr, intbase= 10) const |
| std::string | toStdString() const |
| std::u16string | toStdU16String() const |
| std::u32string | toStdU32String() const |
| std::wstring | toStdWString() const |
| uint | toUInt(bool*ok= nullptr, intbase= 10) const |
| ulong | toULong(bool*ok= nullptr, intbase= 10) const |
| qulonglong | toULongLong(bool*ok= nullptr, intbase= 10) const |
| ushort | toUShort(bool*ok= nullptr, intbase= 10) const |
| QList<uint> | toUcs4() const |
| QString | toUpper() const |
| QByteArray | toUtf8() const |
| qsizetype | toWCharArray(wchar_t*array) const |
(since 6.0) auto | tokenize(Needle&&sep, Flags...flags) && |
(since 6.0) auto | tokenize(Needle&&sep, Flags...flags) const && |
(since 6.0) auto | tokenize(Needle&&sep, Flags...flags) const & |
| QString | trimmed() const |
| void | truncate(qsizetypeposition) |
| const QChar * | unicode() const |
(since 6.7) | operator std::u16string_view() const |
| QString & | operator+=(const QString&other) |
| QString & | operator+=(QCharch) |
| QString & | operator+=(QLatin1StringViewstr) |
(since 6.0) QString & | operator+=(QStringViewstr) |
(since 6.5) QString & | operator+=(QUtf8StringViewstr) |
| QString & | operator+=(const QByteArray&ba) |
| QString & | operator+=(const char*str) |
| QString & | operator=(QString&&other) |
| QString & | operator=(const QString&other) |
| QString & | operator=(QCharch) |
| QString & | operator=(QLatin1StringViewstr) |
| QString & | operator=(const QByteArray&ba) |
| QString & | operator=(const char*str) |
| QChar & | operator[](qsizetypeposition) |
| const QChar | operator[](qsizetypeposition) const |
静的パブリックメンバー
| QString | asprintf(const char*cformat, ...) |
| int | compare(const QString&s1, const QString&s2, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| int | compare(QLatin1StringViews1, const QString&s2, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| int | compare(QStringViews1, const QString&s2, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| int | compare(const QString&s1, QLatin1StringViews2, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| int | compare(const QString&s1, QStringViews2, Qt::CaseSensitivitycs= Qt::CaseSensitive) |
| QString | fromCFString(CFStringRefstring) |
(since 6.6) QString | fromEcmaString(emscripten::valjsString) |
| QString | fromLatin1(const char*str, qsizetypesize) |
(since 6.0) QString | fromLatin1(QByteArrayViewstr) |
| QString | fromLatin1(const QByteArray&str) |
| QString | fromLocal8Bit(const char*str, qsizetypesize) |
(since 6.0) QString | fromLocal8Bit(QByteArrayViewstr) |
| QString | fromLocal8Bit(const QByteArray&str) |
| QString | fromNSString(const NSString*string) |
(since 6.10) QString | fromRawData(const char16_t*unicode, qsizetypesize) |
| QString | fromRawData(const QChar*unicode, qsizetypesize) |
| QString | fromStdString(const std::string&str) |
| QString | fromStdU16String(const std::u16string&str) |
| QString | fromStdU32String(const std::u32string&str) |
| QString | fromStdWString(const std::wstring&str) |
| QString | fromUcs4(const char32_t*unicode, qsizetypesize= -1) |
| QString | fromUtf8(const char*str, qsizetypesize) |
(since 6.0) QString | fromUtf8(QByteArrayViewstr) |
| QString | fromUtf8(const QByteArray&str) |
(since 6.1) QString | fromUtf8(const char8_t*str) |
(since 6.0) QString | fromUtf8(const char8_t*str, qsizetypesize) |
| QString | fromUtf16(const char16_t*unicode, qsizetypesize= -1) |
| QString | fromWCharArray(const wchar_t*string, qsizetypesize= -1) |
| int | localeAwareCompare(const QString&s1, const QString&s2) |
(since 6.0) int | localeAwareCompare(QStringViews1, QStringViews2) |
(since 6.8) qsizetype | maxSize()(QStringView s1, QStringView s2)qsizetype |
| QString | number(longn, intbase= 10) |
| QString | number(doublen, charformat= 'g', intprecision= 6) |
| QString | number(intn, intbase= 10) |
| QString | number(qlonglongn, intbase= 10) |
| QString | number(qulonglongn, intbase= 10) |
| QString | number(uintn, intbase= 10) |
| QString | number(ulongn, intbase= 10) |
| QString | vasprintf(const char*cformat, va_listap) |
関連する非メンバー
(since 6.1) qsizetype | erase(QString &s, const T &t) |
(since 6.1) qsizetype | erase_if(QString &s, Predicate pred) |
| bool | operator!=(const QByteArray &lhs, const QString &rhs) |
| bool | operator!=(const QString &lhs, const QString &rhs) |
| bool | operator!=(const char *const &lhs, const QString &rhs) |
| bool | operator!=(const QString &lhs, const QByteArray &rhs) |
| bool | operator!=(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator!=(const QString &lhs, const char *const &rhs) |
(since 6.4) QString | operator""_s(const char16_t *str, size_t size) |
| QString | operator+(QString &&s1, const QString &s2) |
(since 6.9) QString | operator+(QStringView lhs, const QString &rhs) |
(since 6.9) QString | operator+(const QString &lhs, QStringView rhs) |
| QString | operator+(const QString &s1, const QString &s2) |
| QString | operator+(const QString &s1, const char *s2) |
| QString | operator+(const char *s1, const QString &s2) |
| bool | operator<(const QByteArray &lhs, const QString &rhs) |
| bool | operator<(const char *const &lhs, const QString &rhs) |
| bool | operator<(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator<(const QString &lhs, const QByteArray &rhs) |
| bool | operator<(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator<(const QString &lhs, const QString &rhs) |
| bool | operator<(const QString &lhs, const char *const &rhs) |
| QDataStream & | operator<<(QDataStream &stream, const QString &string) |
| bool | operator<=(const QByteArray &lhs, const QString &rhs) |
| bool | operator<=(const QString &lhs, const QString &rhs) |
| bool | operator<=(const char *const &lhs, const QString &rhs) |
| bool | operator<=(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator<=(const QString &lhs, const QByteArray &rhs) |
| bool | operator<=(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator<=(const QString &lhs, const char *const &rhs) |
| bool | operator==(const QByteArray &lhs, const QString &rhs) |
| bool | operator==(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator==(const QString &lhs, const QByteArray &rhs) |
| bool | operator==(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator==(const QString &lhs, const QString &rhs) |
| bool | operator==(const QString &lhs, const char *const &rhs) |
| bool | operator==(const char *const &lhs, const QString &rhs) |
| bool | operator>(const QByteArray &lhs, const QString &rhs) |
| bool | operator>(const QString &lhs, const QString &rhs) |
| bool | operator>(const char *const &lhs, const QString &rhs) |
| bool | operator>(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator>(const QString &lhs, const QByteArray &rhs) |
| bool | operator>(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator>(const QString &lhs, const char *const &rhs) |
| bool | operator>=(const QByteArray &lhs, const QString &rhs) |
| bool | operator>=(const QString &lhs, const QString &rhs) |
| bool | operator>=(const char *const &lhs, const QString &rhs) |
| bool | operator>=(const QLatin1StringView &lhs, const QString &rhs) |
| bool | operator>=(const QString &lhs, const QByteArray &rhs) |
| bool | operator>=(const QString &lhs, const QLatin1StringView &rhs) |
| bool | operator>=(const QString &lhs, const char *const &rhs) |
| QDataStream & | operator>>(QDataStream &stream, QString &string) |
マクロ
| QStringLiteral(str) | |
| QT_NO_CAST_FROM_ASCII | |
| QT_NO_CAST_TO_ASCII | |
| QT_RESTRICTED_CAST_FROM_ASCII | |
| const char * | qPrintable(const QString &str) |
| const wchar_t * | qUtf16Printable(const QString &str) |
| const char * | qUtf8Printable(const QString &str) |
詳細な説明
QStringは、16ビットのQCharの文字列を格納します。各QChar は、1つのUTF-16コード単位に対応します。(コード値が65535を超えるUnicode文字は、サロゲートペア、つまり連続する2つのQCharを使用して格納されます。)
Unicodeは、現在使用されているほとんどの文字体系をサポートする国際標準です。 これは US-ASCII (ANSI X3.4-1986) および Latin-1 (ISO 8859-1) のスーパーセットであり、すべての US-ASCII/Latin-1 文字が同じコード位置で使用可能です。
内部的には、QStringは暗黙の共有(コピー・オン・ライト)を使用して、メモリ使用量を削減し、データの不必要なコピーを回避しています。これは、8 ビット文字の代わりに 16 ビット文字を格納することに伴う固有のオーバーヘッドを軽減するのにも役立ちます。
QStringに加え、Qtには、生のバイトや、従来の8ビットの「\0 」で終了する文字列を格納するためのQByteArray クラスも用意されています。ほとんどの場合、QStringを使用するのが適切です。 Qt API全体で使用されており、Unicode対応により、将来的にアプリケーションの市場を拡大したい場合でも、容易に翻訳できるようになります。QByteArray が適している代表的なケースとしては、生のバイナリデータを格納する必要がある場合と、メモリ節約が極めて重要な場合(組み込みシステムなど)の2つが挙げられます。
文字列の初期化
QStringを初期化する1つの方法は、コンストラクタにconst char * を渡すことです。たとえば、次のコードは、データ「Hello」を含むサイズ5のQStringを作成します。
QString str = "Hello";QStringは、fromUtf8()関数を使用して、const char * のデータをUnicodeに変換します。
const char * パラメータを受け取るすべてのQString関数において、const char * は、古典的なCスタイルの'\\0' で終了する文字列として解釈されます。関数名が明示的に他のエンコーディングを示している場合を除き、const char * のようなパラメータはUTF-8でエンコードされているものとみなされます。
Qt 6.4 以降では、Qt::Literals::StringLiterals::operator""_s() およびQt::Literals::StringLiterals::operator""_L1() リテラル演算子を使用して QString を初期化することも可能になりました。多くの場合、これらのリテラルを使用すると、more efficient string construction となります。
また、文字列データをQCharの配列として指定することもできます:
static const QChar data[4] = {QChar(0x0055), QChar(0x006e), QChar(0x10e3), QChar(0x03a3) };
QString str(data, 4);QStringはQChar データのディープコピーを作成するため、後で変更しても副作用が生じません。代わりにQStringView やQString::fromRawData()を使用することで、文字データのディープコピーを回避できます。
別の方法として、resize() を使用して文字列のサイズを設定し、データを文字単位で初期化する方法があります。 QString は、C++ の配列と同様に 0 から始まるインデックスを使用します。特定のインデックス位置にある文字にアクセスするには、operator[]() を使用できます。const ではない文字列の場合、operator[]() は、代入式の左辺で使用できる文字への参照を返します。例えば:
QString str;
str.resize(4);
str[0] = QChar('U');
str[1] = QChar('n');
str[2] = QChar(0x10e3);
str[3] = QChar(0x03a3);読み取り専用アクセスを行う場合、別の構文としてat() 関数を使用することもできます:
QString str;
for(qsizetype i= 0; i<str.size();++i) {
if(str.at(i)>=QChar('a')&&str.at(i)<=QChar('f'))
qDebug() << "Found character in range [a-f]";
}at() 関数は、ディープコピーが発生しないため、operator[]() 関数よりも高速に動作する場合があります。あるいは、first()、last()、またはsliced() 関数を使用して、一度に複数の文字を抽出することもできます。
QStringには「'\0'」文字(QChar::Null )を埋め込むことができます。size() 関数は、埋め込まれた「'\0'」文字を含め、常に文字列全体のサイズを返します。
resize() 関数の呼び出し後、新たに割り当てられた文字の値は未定義となります。文字列内のすべての文字を特定の値に設定するには、fill() 関数を使用してください。
QString には、文字列の使用を簡略化するために設計された数十ものオーバーロードが用意されています。たとえば、QString と文字列リテラルを比較したい場合、次のようなコードを書けば、期待どおりに動作します:
QString str;
if (str == "auto" || str == "extern"
|| str == "static" || str == "register") {
// ...
}また、QStringを引数として受け取る関数に文字列リテラルを渡すことも可能です。この場合、QString(const char *)コンストラクタが呼び出されます。同様に、const char * 引数を受け取る関数にQStringを渡すには、qPrintable()マクロを使用します。このマクロは、指定されたQStringをconst char * として返します。これは、toLocal8Bit()を呼び出すのと同じです。QStringに対してconstData()を実行します。
文字列データの操作
QString は、文字データを変更するための以下の基本関数を提供しています:append()、prepend()、insert()、replace()、およびremove()。例えば:
QString str = "and";
str.prepend("rock "); // str == "rock and"
str.append(" roll"); // str == "rock and roll"
str.replace(5, 3, "&"); // str == "rock & roll"上記の例では、replace() 関数の最初の 2 つの引数は、置換を開始する位置と、置換する文字数です。
データ変更関数によって文字列のサイズが増加した場合、QStringはデータを保持しているメモリを再割り当てすることがあります。この場合、QStringは、文字列のサイズが大幅に増加するまで再割り当てを行わずにさらなる拡張の余地を確保できるよう、当面必要以上の分だけサイズを拡大します。
insert()、remove()、およびサブ文字列を異なるサイズの文字列に置換する場合のreplace() といった関数は、文字列内の多くの文字をメモリ上で少なくとも 1 位置分移動させる必要があるため、大きな文字列では処理が遅くなる(線形時間)ことがあります。
QString を段階的に構築しており、QString が含む文字数をあらかじめおおよそ把握している場合は、reserve() を呼び出して、QString に一定量のメモリを事前割り当てさせることができます。また、capacity() を呼び出すことで、QString が実際に割り当てているメモリ量を確認することもできます。
QStringはSTLスタイルのイテレータ(QString::const_iterator およびQString::iterator )を提供しています。実際には、C++標準ライブラリが提供する汎用アルゴリズムを使用する際、イテレータは便利です。
注: QString に対するイテレータ 、および QString 内の個々の文字への参照は、QString のconst 以外のメソッドが呼び出された場合、その有効性が保証されません。const 以外のメソッドを呼び出した後に、そのようなイテレータや参照にアクセスすると、未定義の挙動を引き起こします。イテレータのような機能の安定性が求められる場合は、イテレータの代わりにインデックスを使用すべきです。インデックスはQStringの内部状態に依存しないため、無効化されることがないからです。
注: 暗黙の共有のため、特定の QString に対して最初に使用される非const 演算子または関数は、そのデータの内部的なディープコピーを引き起こす可能性があります。これにより、その文字列を参照するすべてのイテレータおよび、その中の個々の文字への参照が無効になります。 イテレータを保持している間は、非const関数を呼び出さないでください。無効化されたイテレータや参照にアクセスすると、未定義の挙動を引き起こします。詳細については、「暗黙の共有によるイテレータの問題」のセクションを参照してください。
文字列内の可視文字間のスペースを削除または簡略化することは、頻繁に求められる要件です。そのスペースを構成する文字とは、isSpace() がtrue を返す文字であり、単純なスペース' ' 、水平タブ'\\t' 、改行'\\n' などが該当します。文字列の先頭と末尾のスペースをすべて除外したコピーを取得するには、trimmed() を使用してください。 また、文字列内の空白文字の連続をすべて単純なスペース(' ' )に置き換えるには、simplified() を使用します。
QString 内で特定の文字または部分文字列のすべての出現箇所を検索するには、indexOf() またはlastIndexOf() 関数を使用します。前者は前方検索、後者は後方検索を行います。どちらの関数も、検索を開始するインデックス位置を指定することができます。 見つかった場合は、その文字または部分文字列のインデックス位置を返し、見つからなかった場合は -1 を返します。例えば、特定の部分文字列のすべての出現箇所を検索する典型的なループは次のとおりです:
QString str= "We must be <b>bold</b>, very <b>bold</b>";
qsizetype j= 0;
while((j=str.indexOf("<b>",j))!=-1) {
qDebug() << "Found <b> tag at index position" << j;
++j;
}QString には、数値を文字列に変換したり、文字列を数値に変換したりするための多くの関数が用意されています。arg() 関数、setNum() 関数、number() 静的関数、およびtoInt()、toDouble() などの関数を参照してください。
文字列を大文字または小文字に変換するには、toUpper() またはtoLower() を使用します。
文字列のリストは、QStringList クラスによって処理されます。split() 関数を使用して、文字列を文字列のリストに分割したり、QStringList::join() を使用して、オプションの区切り文字を指定して文字列のリストを 1 つの文字列に結合したりすることができます。文字列のリストから、特定の部分文字列を含むエントリや、特定のQRegularExpression に一致するエントリを選択することで、フィルタリングされたリストを取得できます。詳細については、QStringList::filter() を参照してください。
文字列データのクエリ
QStringが特定の部分文字列で始まるか、または終わるかを確認するには、startsWith() またはendsWith() を使用します。QStringに特定の文字や部分文字列が含まれているかどうかを確認するには、contains() 関数を使用します。特定の文字や部分文字列が文字列内に何回出現するかを確認するには、count() を使用します。
実際の文字データへのポインタを取得するには、data() またはconstData() を呼び出します。これらの関数は、QChar データの先頭へのポインタを返します。このポインタは、QString に対してconst 以外の関数が呼び出されるまで、有効であることが保証されています。
文字列の比較
QStringは、operator<()、operator<=()、operator==()、operator>=()などのオーバーロードされた演算子を使用して比較できます。 比較は、2つの文字列をUTF-16コード単位のシーケンスとして見た場合の辞書順のみに基づいて行われます。これは非常に高速ですが、人間が期待する結果とは異なります。そのような比較が利用可能な場合、ユーザーインターフェースの文字列をソートするには、通常、QString::localeAwareCompare() 関数の方が適しています。
QtがICUライブラリとリンクされている場合(通常はリンクされています)、そのロケール対応のソート機能が使用されます。そうでない場合は、プラットフォーム固有の解決策が使用されます:
- Windowsでは、localeAwareCompare()は、Control Panel のregional およびlanguage オプションで設定された現在のユーザーロケールを使用します。
- macOS および iOS では、localeAwareCompare() は、International preferences パネル内のOrder for sorted lists 設定に基づいて比較を行います。
- その他のUnix系システムでは、比較処理はシステムライブラリの
strcoll()にフォールバックします。
エンコードされた文字列データと QString 間の変換
QString は、文字列のconst char * 形式をQByteArray として返す以下の関数を提供しています:toUtf8()、toLatin1()、およびtoLocal8Bit()。
- toLatin1() は、Latin-1 (ISO 8859-1) でエンコードされた 8 ビット文字列を返します。
- toUtf8() は、UTF-8 エンコードされた 8 ビット文字列を返します。UTF-8 は US-ASCII (ANSI X3.4-1986) のスーパーセットであり、マルチバイトシーケンスを通じて Unicode 文字セット全体をサポートしています。
- toLocal8Bit() は、システムのローカルエンコーディングを使用した 8 ビット文字列を返します。これは、Unix システムにおける `toUtf8()` と同じです。
これらのエンコーディングのいずれかから変換を行うために、QStringはfromLatin1()、fromUtf8()、およびfromLocal8Bit()を提供しています。その他のエンコーディングについては、QStringEncoder およびQStringDecoder クラスを通じてサポートされています。
前述の通り、QStringはconst char * 文字列との相互運用を容易にする多くの関数や演算子を提供しています。しかし、この機能は諸刃の剣でもあります: すべての文字列が US-ASCII または Latin-1 である場合は QString の使用がより便利になりますが、const char * との間の暗黙の変換が、誤った 8 ビットエンコーディングで行われてしまうリスクが常に存在します。このリスクを最小限に抑えるために、以下のプリプロセッサシンボルを定義することで、これらの暗黙の変換を無効にすることができます:
- QT_NO_CAST_FROM_ASCII Cの文字列リテラルやポインタからUnicodeへの自動変換を無効にします。
- QT_RESTRICTED_CAST_FROM_ASCII Cの文字および文字配列からの自動変換を許可しますが、文字ポインタからUnicodeへの自動変換は無効にします。
- QT_NO_CAST_TO_ASCII QString から C 文字列への自動変換を無効にします。
この場合、8ビット文字列から QString を生成するには、fromUtf8()、fromLatin1()、またはfromLocal8Bit() を明示的に呼び出すか、軽量なQLatin1StringView クラスを使用する必要があります。例:
// Required for using the '_L1' string literal.
using namespace Qt::StringLiterals;
// ...
QString url = "https://www.unicode.org/"_L1;同様に、QStringを8ビット文字列に変換するには、toLatin1()、toUtf8()、またはtoLocal8Bit()を明示的に呼び出す必要があります。
| Cプログラマーへの注意 |
|---|
C++の型システムおよびQStringが暗黙的に共有されるという事実により、QStringはintやその他の基本型と同様に扱われる場合があります。例えば:
|
null文字列と空文字列の違い
歴史的な理由から、QString は null 文字列と空文字列を区別しています。null文字列とは、QString のデフォルトコンストラクタを使用するか、コンストラクタに `nullptr ` を渡して初期化された文字列のことです。空文字列とは、サイズが 0 の任意の文字列のことです。null 文字列は常に空ですが、空文字列が必ずしも null であるとは限りません:
QString().isNull(); // returns true
QString().isEmpty(); // returns true
QString("").isNull(); // returns false
QString("").isEmpty(); // returns true
QString("abc").isNull(); // returns false
QString("abc").isEmpty(); // returns falseisNull() を除くすべての関数は、ヌル文字列と空文字列を同様に扱います。例えば、toUtf8() やconstData() は、ヌル文字列の場合、'\0' 文字への有効なポインタ(nullptr ではない)を返します。isEmpty() 関数を常に使用し、isNull() は避けることをお勧めします。
数値の書式
QString::arg()'%' の書式指定子に'L' ロケール修飾子が含まれ、基数が 10(デフォルト)の場合、デフォルトのロケールが使用されます。これはQLocale::setDefault() を使用して設定できます。数値のローカライズされた文字列表現をより詳細に制御するには、QLocale::toString() を参照してください。QString によるその他の数値書式設定はすべて、C ロケールの数値表現に従います。
QString::arg() が数値に左詰めを行う場合、埋め込み文字'0' は特別に扱われます。数値が負の場合、ゼロで埋める前にマイナス記号が表示されます。フィールドがローカライズされている場合、'0' の代わりに、そのロケールに適したゼロ文字が使用されます。浮動小数点数の場合、この特別な扱いは、数値が有限である場合にのみ適用されます。
浮動小数点数の書式
浮動小数点数(float またはdouble )を文字列としてフォーマットするメンバ関数(例:arg() やnumber())では、フォーマットと精度の選択によって表現方法を制御できます。これらの意味は、QLocale::toString (double、char、int)の場合と同様です。
選択された書式に指数が含まれる場合、ローカライズされた形式では、指数部の桁数についてロケールの規則に従います。ローカライズされていない書式の場合、指数には符号が表示され、少なくとも 2 桁が含まれ、必要に応じて左側に 0 で埋められます。
より効率的な文字列の構築
多くの文字列はコンパイル時に既知です。C++の文字列リテラルからのQStringコンストラクタは、文字列の内容をUTF-8として扱い、その内容をコピーします。これにはメモリの割り当てと文字列データの再エンコードが必要ですが、これらの操作は実行時に実行されます。 文字列データがコンパイル時に既知である場合は、QStringLiteral マクロ、あるいは同様にoperator""_s を使用して、代わりにコンパイル時にQStringのペイロードを作成することができます。
QStringの'+' 演算子を使用すると、複数の部分文字列から複雑な文字列を簡単に構築できます。多くの場合、次のようなコードを記述することになります:
// Required for using the '_L1' string literal.
using namespace Qt::StringLiterals;
// ...
QString foo;
QString type = "long";
foo = "vector<"_L1 + type + ">::iterator"_L1;
if (foo.startsWith("(" + type + ") 0x"))
...これらの文字列の構築方法のいずれも間違いではありませんが、いくつかの隠れた非効率性が存在します:
まず、'+' 演算子を繰り返し使用すると、メモリの割り当てが複数回行われる可能性があります。n個の部分文字列(n > 2)を連結する場合、メモリ割り当て関数が最大でn - 1回呼び出されることがあります。
これらの割り当ては、内部クラス `QStringBuilder` によって最適化されます。このクラスは `internal` としてマークされており、ドキュメントには記載されていません。これは、コード内でこのクラスをインスタンス化することを想定していないためです。その使用は、以下で説明するように自動的に行われます。
QStringBuilder '%' は式テンプレートを使用し、 演算子を再実装しています。これにより、文字列連結に ` ` の代わりに ` ` を使用すると、複数の部分文字列の連結は、最終結果が QString に代入されようとするまで延期されます。この時点で、最終結果に必要なメモリ量が判明しています。 その後、メモリアロケータが'+' '%' 一度呼び出されて必要な領域が確保され、部分文字列が一つずつその領域にコピーされます。
インライン化と参照カウントの削減によって、さらなる効率化が図られています(QStringBuilder から作成されたQStringの参照カウントは1ですが、QString::append()では追加のテストが必要となります)。
この改良された文字列構築メソッドを利用するには、2つの方法があります。最も簡単な方法は、QStringBuilder を必要な場所にインクルードし、文字列を連結する際に'+' の代わりに'%' 演算子を使用することです:
#include <QStringBuilder>
QString hello("hello");
QStringView el = QStringView{ hello }.sliced(2, 3);
QString message = hello % el % "world"_L1 % QChar('!');より包括的なアプローチとして、利便性は高いもののソースコード互換性が完全ではない方法として、ビルド時にQT_USE_QSTRINGBUILDER を定義(コンパイラフラグに追加)する方法があります。これにより、'+' を使用した文字列連結が、QStringBuilder's と同じように動作するようになります'%' 。
注: QStringBuilderが有効な状態で、文字列連結の結果に対して自動型推論(例えば、auto キーワードの使用)を行うと 、その連結結果が実際にQStringBuilderの特殊化のオブジェクトであることが示されます:
QString str("QStringBuilder");
// "s" type is deduced as QStringBuilder<...>
auto s = "Like hot glue, " % str % " concatenates strings";
// Similarly the return type of this lambda is deduced as QStringBuilder<...>
auto concatenateStr = []() {
return "Like hot glue, " % str % " concatenates strings";
};QStringBuilderは必要に応じて暗黙的にQStringに変換されるため、これによって問題が生じることはありません。もしこれが望ましくない場合は、コンパイラに型を推論させるのではなく、必要な型を明示的に指定する必要があります:
QString s = "Like hot glue, " % str % " concatenates strings";
// With a lambda, specify a trailing return type:
auto concatenateStr = []() -> QString {
return "Like hot glue, " % str % " concatenates strings";
};最大サイズとメモリ不足の状態
QStringの最大サイズはアーキテクチャによって異なります。ほとんどの64ビットシステムでは2 GB以上のメモリを割り当てることができ、一般的な上限は2^63バイトです。実際の値は、データブロックの管理に必要なオーバーヘッドにも依存します。 したがって、32ビットプラットフォームでは最大サイズが2 GBからオーバーヘッド分を差し引いた値、64ビットプラットフォームでは2^63バイトからオーバーヘッド分を差し引いた値になると予想されます。QStringに格納できる要素数は、この最大サイズをQChar のサイズで割った値となります。
メモリの割り当てに失敗した場合、アプリケーションが例外処理をサポートするようにコンパイルされていれば、QStringはstd::bad_alloc 例外をスローします。Qtコンテナにおけるメモリ不足の状態は、Qtが例外をスローする唯一のケースです。例外が無効化されている場合、メモリ不足は未定義の挙動となります。
注:ターゲットとなる オペレーティングシステムによっては、アプリケーションが割り当て可能なメモリの合計量や、個々の割り当てサイズに制限が課される場合があります。これにより、QStringが保持できる文字列のサイズがさらに制限される可能性があります。これらの制限によって引き起こされる動作の緩和や制御は、Qt APIの範囲外です。
関連項目: 「どの文字列クラスを使用すべきか?」、fromRawData()、QChar 、QStringView 、QLatin1StringView 、およびQByteArrayを参照してください 。
メンバ型のドキュメント
QString::ConstIterator
QString::const_iterator の Qt スタイルの同義語。
QString::Iterator
QString::iterator の Qt スタイルの同義語。
enum QString::NormalizationForm
この列挙型は、Unicodeテキストのさまざまな正規化形式を表します。
| 定数 | 値 | 説明 |
|---|---|---|
QString::NormalizationForm_D | 0 | 正規分解 |
QString::NormalizationForm_C | 1 | 正規分解の後に正規合成が続くもの |
QString::NormalizationForm_KD | 2 | 互換性分解 |
QString::NormalizationForm_KC | 3 | 互換性分解とそれに続く標準構成 |
関連項目: normalized() およびUnicode 標準付属書 #15。
enum QString::SectionFlag
flags QString::SectionFlags
この列挙型は、区切り文字や空のフィールドに関して、section() 関数の動作のさまざまな側面を制御するために使用できるフラグを指定します。
| 定数 | 定数値 | 説明 |
|---|---|---|
QString::SectionDefault | 0x00 | 空のフィールドはカウントされ、先頭および末尾の区切り文字は含まれず、区切り文字の比較には大文字と小文字が区別されます。 |
QString::SectionSkipEmpty | 0x01 | 空のフィールドは存在しないものとして扱い、つまり、開始位置および終了位置に関しては考慮されません。 |
QString::SectionIncludeLeadingSep | 0x02 | 結果の文字列に先頭の区切り文字(ある場合)を含めます。 |
QString::SectionIncludeTrailingSep | 0x04 | 結果の文字列には、末尾の区切り文字(ある場合)を含めます。 |
QString::SectionCaseInsensitiveSeps | 0x08 | 区切り文字の比較は、大文字と小文字を区別せずに実行します。 |
SectionFlags 型は、QFlags<SectionFlag> の typedef です。SectionFlag 値の OR 組み合わせを格納します。
section()も参照してください 。
QString::const_iterator
QString::iteratorも参照してください 。
QString::const_pointer
QString::const_pointer の typedef は、QString の要素への STL スタイルの const ポインタを提供します(QChar )。
QString::const_reference
QString::const_reverse_iterator
QString::reverse_iterator およびQString::const_iteratorも参照してください 。
QString::difference_type
QString::iterator
QString::const_iteratorも参照してください 。
QString::pointer
QString::pointer 型定義は、QString 要素へのSTL形式のポインタを提供します(QChar )。
QString::reference
QString::reverse_iterator
QString::const_reverse_iterator およびQString::iteratorも参照してください 。
QString::size_type
QString::value_type
メンバー関数のドキュメント
[constexpr noexcept] QString::QString()
ヌル文字列を作成します。ヌル文字列も空とみなされます。
isEmpty()、isNull()、およびDistinction Between Null and Empty Stringsも参照してください 。
QString::QString(QChar ch)
文字「ch 」を含む、長さ1の文字列を作成します。
QString::QString(QLatin1StringView str)
str で取得された Latin-1 文字列のコピーを作成します。
fromLatin1()も参照してください 。
[explicit, since 6.8] QString::QString(QStringView sv)
ストリングビューのデータで初期化された文字列を作成します。
sv がnullである場合に限り、QStringはnullになります。
この関数は Qt 6.8 で導入されました。
fromUtf16()も参照してください 。
QString::QString(const QByteArray &ba)
バイト配列 `ba` で初期化された文字列を生成します。指定されたバイト配列は、fromUtf8() を使用して Unicode に変換されます。
アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、このコンストラクタを無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列がQObject::tr()を経由するようにしたい場合などに役立ちます。
注: バイト配列内のヌルバイト('\0')は、 この文字列に含まれ、Unicodeのヌル文字(U+0000)に変換されます。この動作はQt 5.xとは異なります。
関連項目: fromLatin1()、fromLocal8Bit()、およびfromUtf8()。
QString::QString(const char *str)
8ビット文字列str で初期化された文字列を構築します。指定されたconst charポインタは、fromUtf8()関数を用いてUnicodeに変換されます。
アプリケーションをコンパイルする際にQT_NO_CAST_FROM_ASCII を定義することで、このコンストラクタを無効にできます。これは、例えば、ユーザーに表示されるすべての文字列がQObject::tr()を経由するようにしたい場合などに役立ちます。
注: QT_RESTRICTED_CAST_FROM_ASCII を定義しても 、このコンストラクタは無効になりますが、代わりにQString(const char (&ch)[N]) コンストラクタが有効になります。この場合、リテラル以外の入力、NUL 文字が埋め込まれた入力、または 7 ビット以外の文字を含む入力を使用すると、動作は未定義となります。
fromLatin1()、fromLocal8Bit()、およびfromUtf8()も参照してください 。
[since 6.1] QString::QString(const char8_t *str)
UTF-8文字列str で初期化された文字列を作成します。指定されたconst char8_tポインタは、fromUtf8()関数を使用してUnicodeに変換されます。
この関数は Qt 6.1 で導入されました。
fromLatin1()、fromLocal8Bit()、およびfromUtf8()も参照してください 。
[explicit] QString::QString(const QChar *unicode, qsizetype size = -1)
QChar 配列unicode の最初のsize 文字で初期化された文字列を生成します。
unicode が0の場合、空の文字列が生成されます。
size が負の場合、unicode は '\0' で終了する配指し示しているとみなされ、その長さは動的に決定されます。終了文字であるヌル文字は、文字列の一部とはみなされません。
QString は、文字列データのディープコピーを作成します。Unicode データはそのままコピーされ、バイト順マーク (BOM) が存在する場合は保持されます。
fromRawData()も参照してください 。
QString::QString(qsizetype size, QChar ch)
指定されたsize の各文字をch に設定した文字列を生成します。
fill()も参照してください 。
[noexcept] QString::QString(const QString &other)
other のコピーを作成します。
QStringは暗黙的に共有されるため、この操作は定数時間で行われます。これにより、関数からQStringを返す処理は非常に高速になります。共有されているインスタンスが変更された場合、そのインスタンスはコピーされます(コピー・オン・ライト)が、その処理には線形時間がかかります。
operator=()も参照してください 。
[noexcept default] QString::QString(QString &&other)
QStringのインスタンスをムーブコンストラクタで生成し、other が指していたのと同じオブジェクトを指すようにします。
[noexcept] QString::~QString()
文字列を破棄します。
QString &QString::append(const QString &str)
この文字列の末尾に、文字列「str 」を追加します。
例:
これは、insert() 関数を使用するのと同じです:
x.insert(x.size(), y);append() 関数は通常、非常に高速(定数時間)です。これは、QString が文字列データの末尾に余分な領域を事前に確保しているため、毎回文字列全体を再割り当てすることなく、文字列を拡張できるからです。
operator+=()、prepend()、およびinsert()も参照してください 。
QString &QString::append(QChar ch)
この文字列に「ch 」という文字を追加します。
この関数は、QString::append() をオーバーロードしています。
QString &QString::append(QLatin1StringView str)
str で取得された Latin-1 文字列を、この文字列に追加します。
この関数は、QString::append() をオーバーロードしています。
[since 6.0] QString &QString::append(QStringView v)
指定された文字列ビュー `v ` をこの文字列に追加し、その結果を返します。
この関数は、QString::append() をオーバーロードしています。
この関数は Qt 6.0 で導入されました。
[since 6.5] QString &QString::append(QUtf8StringView str)
UTF-8文字列ビュー `str ` をこの文字列に追加します。
この関数は、QString::append() をオーバーロードします。
この関数は Qt 6.5 で導入されました。
QString &QString::append(const QByteArray &ba)
バイト配列 `ba ` をこの文字列に追加します。指定されたバイト配列は、fromUtf8() 関数を使用して Unicode に変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この関数を無効にすることができます。これは、たとえば、ユーザーに表示されるすべての文字列を `QObject::tr()` 経由で処理させたい場合などに役立ちます。
この関数は、QString::append() をオーバーロードしています。
QString &QString::append(const char *str)
この文字列に「str 」という文字列を追加します。指定された const char ポインタは、fromUtf8() 関数を使用して Unicode に変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この関数を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
この関数は、QString::append() をオーバーロードしています。
QString &QString::append(const QChar *str, qsizetype len)
QChar 配列str に含まれるlen 文字を、この文字列に追加します。
この関数は、QString::append() をオーバーロードしています。
template <typename... Args> QString QString::arg(Args &&... args) const
この文字列中の「%N 」を、args から取得した対応する引数に置き換えます。引数は位置依存ではありません。args の最初の引数は、%N を最も低い値のN (すべて)に置き換え、args の 2 番目の引数は、%N を次に低い値のN に置き換える、というように続きます。
Args QAnyStringView へ暗黙的に変換可能なものであれば何でも構成可能です。
注: Qt 6.9 以前のバージョンでは 、QAnyStringView および UTF-8 文字列(QUtf8StringView 、QByteArray 、QByteArrayView 、const char8_t* など)は、args としてサポートされていませんでした。
QString::arg()も参照してください 。
template <typename T> requires if_string_like<T> QString QString::arg(const T &a, int fieldWidth = 0, QChar fillChar = u' ') const
この文字列のコピーを返し、番号が最も小さいプレースホルダーを文字列 `a` で置き換えます。つまり、`%1`、`%2`、……、`%99` となります。
fieldWidth a が占める最小のスペースを指定します。 が よりも少ないスペースしか必要としない場合、 文字で までパディングされます。正の を指定すると、テキストは右揃えになります。負の を指定すると、テキストは左揃えになります。a fieldWidth fillChar fieldWidth fieldWidth fieldWidth
この例は、ファイルのリストを処理している間の進行状況を報告するために、status という文字列を作成する方法を示しています:
int i; // current file's number
int total; // number of files to process
QStringView fileName; // current file's name
QString status = QString("Processing file %1 of %2: %3")
.arg(i).arg(total).arg(fileName);まず、arg(i) が%1 を置き換えます。次に、arg(total) が%2 を置き換えます。最後に、arg(fileName) が%3 を置き換えます。
asprintf() ではなく arg() を使用する利点の 1 つは、アプリケーションの文字列が他の言語に翻訳された場合に、番号付きのプレースホルダーの順序が変わっても、各 arg() は、それがどこに現れていても、番号が最も小さい未置換のプレースホルダーを置き換えるという点です。 また、プレースホルダー%i が文字列中に複数回出現する場合、arg() はそのすべてを置換します。
未置換のプレースホルダーが残っていない場合、警告メッセージが表示され、結果は未定義となります。プレースホルダーの番号は 1 から 99 の範囲でなければなりません。
注: Qt 6.9以前のバージョンでは 、この関数は `char`、`QChar`、`QString`、`QStringView`、および `QLatin1StringView ` に対してオーバーロードされており、場合によっては `wchar_t ` および `char16_t ` 引数が整数型のオーバーロードに解決されることがありました。Qt 5.10 以前のバージョンでは、この関数には `QStringView ` および `QLatin1StringView ` のオーバーロードがありませんでした。
template <typename T> requires if_integral_non_char<T> QString QString::arg(T a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const
a 引数は、基数base で表されます。デフォルトでは10ですが、2から36までの値でなければなりません。基数が10以外の場合、a は符号なし整数として扱われます。
fieldWidth a が、 で埋められる最小のスペース量を指定します。正の値は右揃えのテキストを生成し、負の値は左揃えのテキストを生成します。fillChar
'%' の後に 'L' が続く場合、そのシーケンスはa のローカライズされた表現に置き換えられます。変換には、QLocale::setDefault() で設定されたデフォルトのロケールが使用されます。デフォルトのロケールが指定されていない場合は、システムのロケールが使用されます。base が 10 でない場合、'L' フラグは無視されます。
QString str;
str = QString("Decimal 63 is %1 in hexadecimal")
.arg(63, 0, 16);
// str == "Decimal 63 is 3f in hexadecimal"
QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
str = QString("%1 %L2 %L3")
.arg(12345)
.arg(12345)
.arg(12345, 0, 16);
// str == "12345 12,345 3039"注: Qt 6.10.1 以前のバージョンでは 、この関数は整数型に暗黙的に変換される型の引数を受け入れていました。これは、(スコープのない)列挙型を除き、もはやサポートされていません。これは、浮動小数点型に変換可能な型も受け入れていたため、それらを整数として出力する際に精度が失われていたためです。 下位互換性を保つための対処法として、そのような型を、表示形式が意図した通りに一致する C++ 型(int 、float 、...)にキャストしてください。
注: Qt 6.9以前のバージョンでは 、この関数はさまざまな整数型に対してオーバーロードされており、char やchar16_t といった引数を誤って受け入れることがありました。
この関数はQString::arg() をオーバーロードしています。
Number formatsも参照してください 。
template <typename T> requires if_floating_point<T> QString QString::arg(T a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = u' ') const
引数 `a ` は、指定された `format ` および `precision` に基づいてフォーマットされます。詳細については、Floating-point Formats を参照してください。
fieldWidth a が、 でパディングされ、埋めるための最小スペースを指定します。正の値はテキストを右揃えにし、負の値は左揃えにします。fillChar
double d = 12.34;
QString str = QString("delta: %1").arg(d, 0, 'E', 3);
// str == "delta: 1.234E+01"注: Qt 6.9以前のバージョンでは 、この関数は `double` を受け取る通常の関数でした。現在はテンプレート関数となっているため、単に浮動小数点型に暗黙的に変換されるだけの引数は受け付けなくなりました。下位互換性を保つための対処法として、そのような型を C++ の浮動小数点型のいずれかにキャストしてください。
この関数は、QString::arg() をオーバーロードしています。
QLocale::toString()、QLocale::FloatingPointPrecisionOption 、およびNumber formatsも参照してください 。
[static] QString QString::asprintf(const char *cformat, ...)
フォーマット文字列 `cformat ` と任意の引数のリストから、フォーマット済み文字列を安全に生成します。
このフォーマット文字列は、標準 C++ ライブラリの printf() が提供する変換指定子、長さ修飾子、およびフラグをサポートしています。cformat 文字列および%s 引数は、UTF-8 エンコードされている必要があります。
注: %lc エスケープシーケンスは 、char16_t 型(QChar::unicode() によって返されるもの)またはushort の Unicode 文字を期待します。%ls エスケープシーケンスは、char16_t 型、またはushort (QString::utf16() によって返されるもの)の Unicode 文字からなる、ヌル終端された配列へのポインタを期待します。 これは、標準C++ライブラリのprintf()とは矛盾しています。標準C++ライブラリでは、%lc はwchar_tを出力し、%ls はwchar_t* を出力するように定義されており、wchar_t のサイズが16ビットでないプラットフォームでは、コンパイラ警告が発生する可能性があります。
警告: 新しい Qt コードでは、QString::asprintf() の使用は推奨されません 。代わりに、QTextStream またはarg() の使用を検討してください。これらはいずれも Unicode 文字列をシームレスにサポートし、型安全です。以下に、QTextStream を使用した例を示します:
QString result;
QTextStream(&result) << "pi = " << 3.14;
// result == "pi = 3.14"translations を使用する場合、特に文字列に複数のエスケープシーケンスが含まれている場合は、代わりにarg() 関数の使用を検討してください。これにより、置換の順序を翻訳者が制御できるようになります。
arg()も参照してください 。
[since 6.6] QString &QString::assign(QAnyStringView v)
この文字列の内容をv のコピーに置き換え、この文字列への参照を返します。
この文字列のサイズは、v のサイズに相当し、v.toString() によって変換されたかのように UTF-16 に変換されます。ただし、QAnyStringView::toString() とは異なり、この関数は、推定サイズがこの文字列の容量を超える場合、またはこの文字列が共有されている場合にのみメモリを割り当てます。
この関数は Qt 6.6 で導入されました。
QAnyStringView::toString()も参照してください 。
[since 6.6] template <typename InputIterator> requires if_compatible_iterator<InputIterator> QString &QString::assign(InputIterator first, InputIterator last)
この文字列の内容を、イテレータの範囲 [first,last) 内の要素のコピーに置き換え、この文字列への参照を返します。
この文字列のサイズは、範囲 [first,last) 内の要素のデコード後の長さと同じになります。この関数は入力文字セットを UTF-16 に透過的に再エンコードするため、この長さは範囲自体の長さとは必ずしも同じとは限りません。
この関数は、範囲内の要素数、あるいは UTF-16 エンコードされていない入力の場合、結果となる文字列の最大可能サイズが、この文字列の容量を超える場合、またはこの文字列が共有されている場合にのみ、メモリを割り当てます。
注: いずれかの引数が *this へのイテレータである場合、または [first,last) が有効な範囲でない場合、挙動は 未定義となります。
制約
InputIterator がLegacyInputIteratorの要件を満たし、かつInputIterator のvalue_type が以下の文字型のいずれかである場合にのみ、オーバーロード解決の対象となります:
- QChar
- QLatin1Char
charunsigned charsigned charchar8_tchar16_t- (Windows など、これが 16 ビット型であるプラットフォームの場合)
wchar_t char32_t
この関数は Qt 6.6 で導入されました。
[since 6.6] QString &QString::assign(qsizetype n, QChar c)
この文字列の内容を、c のn 個のコピーに置き換え、この文字列への参照を返します。
この文字列のサイズはn に等しくなり、 は非負でなければなりません。
n がこの文字列の容量を超える場合、またはこの文字列が共有されている場合にのみ、この関数はメモリを割り当てます。
この関数は Qt 6.6 で導入されました。
fill()も参照してください 。
const QChar QString::at(qsizetype position) const
文字列内の指定されたインデックスposition にある文字を返します。
position は、文字列内の有効なインデックス位置でなければなりません(つまり、0 <=position <size())。
operator[]()も参照してください 。
QChar &QString::back()
文字列の最後の文字への参照を返します。operator[](size() - 1) と同じです。
この関数は、STLとの互換性のために提供されています。
警告: 空の文字列に対してこの関数を呼び出すと 、未定義の挙動を引き起こします。
関連項目: front()、at()、およびoperator[]()。
QChar QString::back() const
文字列の最後の文字を返します。at(size() - 1) と同じです。
この関数は、STLとの互換性を確保するために提供されています。
警告: 空の文字列に対してこの関数を呼び出すと 、未定義の挙動となります。
関連項目: front()、at()、およびoperator[]()。
QString::iterator QString::begin()
文字列の先頭文字を指すSTL形式のイテレータを返します。
警告: 返されたイテレータは 、切り離された場合、またはQString が変更された場合に無効になります。
関連項目: constBegin() およびend()。
QString::const_iterator QString::begin() const
この関数は、QString::begin() をオーバーロードしています。
qsizetype QString::capacity() const
再割り当てを強制することなく、文字列に格納できる最大文字数を返します。
この関数の唯一の目的は、QString のメモリ使用量を微調整する手段を提供することです。一般的に、この関数を呼び出す必要はほとんどありません。文字列に含まれる文字数を知りたい場合は、size()を呼び出してください。
注: 静的に割り当てられた文字列は 、空でなくても容量が 0 と報告されます。
注: 割り当てられたメモリブロック内の空き領域の位置は 未定義です。つまり、空きメモリが常に初期化された要素の後に位置していると想定すべきではありません。
QString::const_iterator QString::cbegin() const
文字列の先頭文字を指す、STL スタイルのconstイテレータを返します。
警告: 返されたイテレータは 、QString が切り離された場合、または変更された場合に無効になります。
QString::const_iterator QString::cend() const
文字列の最後の文字の直後を指す、STL スタイルのconstイテレータを返します。
警告: 返されたイテレータは 、切り離された場合、またはQString が変更された場合に無効になります。
void QString::chop(qsizetype n)
文字列の末尾からn 文字を削除します。
n がsize()以上の場合、結果は空文字列になります。n が負の値の場合、0を指定した場合と同じ結果になります。
例:
QString str("LOGOUT\r\n");
str.chop(2);
// str == "LOGOUT"文字列の先頭から文字を削除したい場合は、代わりにremove() を使用してください。
関連項目: truncate()、resize()、remove()、およびQStringView::chop()。
この文字列のsize() -len の左端の文字を含む文字列を返します。
注: len が負の値、またはsize()より大きい場合、動作は 未定義となります。
関連項目: endsWith()、first()、last()、sliced()、chop()、truncate()、およびslice()。
void QString::clear()
文字列の内容をクリアし、null にします。
resize() およびisNull()も参照してください 。
[static noexcept] int QString::compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
文字列 `s1 ` と `s2 ` を比較し、`s1 ` が `s2` より小さい場合は負の整数を、` ` が `s2` より大きい場合は正の整数を、両者が等しい場合は 0 を返します。
cs がQt::CaseSensitive (デフォルト)の場合、比較は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
大文字と小文字を区別する比較は、文字の数値的なUnicode値のみに基づいており、非常に高速ですが、人間が期待する結果とは異なります。localeAwareCompare() を使用して、ユーザーに表示される文字列をソートする場合を考えてみてください。
int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive); // x == 0
int y = QString::compare("auto", "Car", Qt::CaseSensitive); // y > 0
int z = QString::compare("auto", "Car", Qt::CaseInsensitive); // z < 0注:この関数は 、NULL文字列を空文字列と同様に扱います。詳細については、Distinction Between Null and Empty Strings をご覧ください。
関連項目: operator==()、operator<()、operator>()、およびComparing Strings 。
[noexcept] int QString::compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
cs の大文字小文字の区別設定を使用して、これを `ch` と比較します。
この関数は、QString::compare() をオーバーロードします。
[noexcept] int QString::compare(QLatin1StringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
compare(*this,other,cs) と同じです。
この関数は、QString::compare() をオーバーロードしています。
[noexcept] int QString::compare(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
cs の大文字小文字の区別設定を使用して、これを `s` と比較します。
この関数は、QString::compare() をオーバーロードします。
[noexcept] int QString::compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列と文字列 `other ` を辞書順で比較し、この文字列が `other` より小さい場合は負の整数を、`other` より大きい場合は正の整数を、等しい場合は 0 を返します。
compare(*this,other,cs) と同じです。
この関数は、QString::compare() をオーバーロードしています。
[static noexcept] int QString::compare(QLatin1StringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
大文字と小文字の区別に関する設定 `cs` を使用して、s1 とs2 の比較を行います。
この関数は、QString::compare() をオーバーロードします。
[static noexcept] int QString::compare(QStringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は、QString::compare() をオーバーロードしています。
[static noexcept] int QString::compare(const QString &s1, QLatin1StringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
大文字と小文字の区別設定(cs )に基づいて、s1 とs2 の比較を行います。
この関数は、QString::compare() をオーバーロードします。
[static noexcept] int QString::compare(const QString &s1, QStringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は、QString::compare() をオーバーロードしています。
QString::const_iterator QString::constBegin() const
文字列の先頭文字を指す、STL スタイルのconstイテレータを返します。
警告: 返されたイテレータは 、QString が切り離された場合、または変更された場合に無効になります。
const QChar *QString::constData() const
QString に格納されているデータへのポインタを返します。このポインタを使用すると、文字列を構成する各文字にアクセスできます。
なお、このポインタは、文字列が変更されない限り有効であることに注意してください。
注: 返される文字列は 、'\0'で終了していない場合があります。配列の長さを確認するには、size() を使用してください。
関連項目: data()、operator[]()、およびfromRawData()。
QString::const_iterator QString::constEnd() const
文字列の最後の文字の直後の位置を指す、STL スタイルのconstイテレータを返します。
警告: 返されたイテレータは 、切り離された場合、またはQString が変更された場合に無効になります。
関連項目: constBegin() およびend()。
bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
正規表現 `re ` がこの文字列のどこかに一致する場合は `true ` を返し、一致しない場合は `false` を返します。
一致に成功し、かつ `rmatch ` が `nullptr` ではない場合、一致の結果は `rmatch` が指す `QRegularExpressionMatch ` オブジェクトにも書き込まれます。
QRegularExpression::match()も参照してください 。
bool QString::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列に「str 」という文字列が含まれている場合は「true 」を返し、そうでない場合は「false 」を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
例:
QString str = "Peter Pan";
str.contains("peter", Qt::CaseInsensitive); // returns trueindexOf() およびcount()も参照してください 。
bool QString::contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列にch という文字が含まれている場合はtrue を返し、そうでない場合はfalse を返します。
この関数は、QString::contains() をオーバーロードしています。
bool QString::contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列に latin-1 形式の文字列 `str` が含まれている場合は `true ` を返し、そうでない場合は `false` を返します。
この関数は、QString::contains() をオーバーロードしています。
[noexcept] bool QString::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列に「str 」という文字列が含まれている場合は `true ` を返し、そうでない場合は `false` を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
この関数は、QString::contains() をオーバーロードしています。
indexOf() およびcount()も参照してください 。
qsizetype QString::count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字列「str 」が(重複している場合も含め)何回出現するかを返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
contains() およびindexOf()も参照してください 。
qsizetype QString::count(const QRegularExpression &re) const
正規表現 `re ` が文字列内で一致した回数を返します。
歴史的な理由により、この関数は重複する一致もカウントするため、以下の例では「ana」または「ama」は 4 回出現することになります:
QString str = "banana and panama";
str.count(QRegularExpression("a[nm]a")); // returns 4この動作は、QRegularExpressionMatchIterator を使用して文字列内の一致箇所を単純に反復処理する場合とは異なります。
この関数は `QString::count()` をオーバーロードしています。
QRegularExpression::globalMatch()も参照してください 。
qsizetype QString::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
文字列内の文字「ch 」の出現回数を返します。
cs が `Qt::CaseSensitive `(デフォルト)の場合、大文字と小文字を区別して検索します。それ以外の場合は、大文字と小文字を区別せずに検索します。
この関数は、QString::count() をオーバーロードしています。
contains() およびindexOf()も参照してください 。
[since 6.0] qsizetype QString::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字列ビュー `str ` が(重複している場合も含め)何回出現するかを返します。
cs が `Qt::CaseSensitive `(デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
この関数は、QString::count() をオーバーロードしています。
この関数は Qt 6.0 で導入されました。
contains() およびindexOf()も参照してください 。
QString::const_reverse_iterator QString::crbegin() const
文字列の最初の文字を逆順で指す、STL スタイルのconst リバースイテレータを返します。
警告: 返されたイテレータは 、QString から切り離された場合、または が変更された場合に無効になります。
関連項目: ` begin()`、`rbegin()`、および `rend()`。
QString::const_reverse_iterator QString::crend() const
文字列の最後の文字の直後を指す、STL スタイルの逆順イテレータ(const)を、逆順で返します。
警告: 返されたイテレータは 、QString が切り離された場合、または変更された場合に無効になります。
QChar *QString::data()
QString に格納されているデータへのポインタを返します。このポインタを使用すると、文字列を構成する文字にアクセスしたり、変更したりすることができます。
constData() やunicode() とは異なり、返されるデータは常に '\0' で終了しています。
例:
QString str= "Hello world";
QChar*data =str.data();
while(!data->isNull()) {
qDebug() << data->unicode();
++data;
}なお、このポインタは、文字列が他の方法で変更されない限り有効であることに注意してください。読み取り専用アクセスでは、constData() の方が高速です。これは、ディープコピーが発生しないためです。
constData() およびoperator[]()も参照してください 。
const QChar *QString::data() const
注: 返される文字列は 、「\0 」で終了していない場合があります。配列の長さを確認するには、size() を使用してください。
これはオーバーロードされた関数です。
fromRawData()も参照してください 。
void QString::detach()
この文字列のデータが、他のインスタンスと共有されなくなるようにします。
QString::iterator QString::end()
文字列の最後の文字の直後に位置するSTL形式のイテレータを返します。
警告: 返されたイテレータは 、切り離された場合、またはQString が変更された場合に無効になります。
関連項目: ` begin()` および `constEnd()`。
QString::const_iterator QString::end() const
この関数は、QString::end() をオーバーロードしています。
bool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
文字列が「s 」で終わる場合は `true ` を返し、そうでない場合は `false` を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
QString str = "Bananas";
str.endsWith("anas"); // returns true
str.endsWith("pple"); // returns falsestartsWith()も参照してください 。
bool QString::endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
文字列が「c 」で終わる場合は `true ` を返し、そうでない場合は `false` を返します。
この関数は、QString::endsWith() をオーバーロードしています。
bool QString::endsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この関数は、QString::endsWith() をオーバーロードしています。
[noexcept] bool QString::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
文字列の末尾が「str 」で終わる場合は `true ` を返し、そうでない場合は `false` を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
この関数は、QString::endsWith() をオーバーロードしています。
startsWith()も参照してください 。
[since 6.1] QString::iterator QString::erase(QString::const_iterator first, QString::const_iterator last)
文字列から、半開区間 [first,last ) に含まれる文字を削除します。削除された最後の文字の直後の文字(つまり、削除前にlast が指していた文字)へのイテレータを返します。
この関数は Qt 6.1 で導入されました。
[since 6.5] QString::iterator QString::erase(QString::const_iterator it)
文字列からit で指定された文字を削除します。削除された文字の直後に続く文字へのイテレータを返します。
QString c = "abcdefg";
auto it = c.erase(c.cbegin()); // c is now "bcdefg"; "it" points to "b"これはオーバーロードされた関数です。
この関数は Qt 6.5 で導入されました。
QString &QString::fill(QChar ch, qsizetype size = -1)
文字列内のすべての文字を文字「ch 」に設定します。size が-1(デフォルト)以外の場合、事前に文字列が「size 」にリサイズされます。
例:
QString str = "Berlin";
str.fill('z');
// str == "zzzzzz"
str.fill('A', 2);
// str == "AA"resize()も参照してください 。
[since 6.0] QString QString::first(qsizetype n) &&
[since 6.0] QString QString::first(qsizetype n) const &
この文字列の先頭から、n 文字分(つまり、この文字列の先頭から、インデックス位置n にある要素までは含まない)を含む文字列を返します。
注: n < 0 またはn >size() の場合、動作は 未定義です。
これらの関数は Qt 6.0 で導入されました。
関連項目: last()、sliced()、startsWith()、chopped()、chop()、truncate()、およびslice()。
[static] QString QString::fromCFString(CFStringRef string)
string のCFStringのコピーを含む新しいQString を生成します。
注:この関数は macOS および iOS でのみ利用可能です。
[static, since 6.6] QString QString::fromEcmaString(emscripten::val jsString)
ECMAScriptの文字列`jsString ` を `QString` に変換します。渡されたパラメータが文字列でない場合、動作は未定義となります。
この関数は Qt 6.6 で導入されました。
toEcmaString()も参照してください 。
[static] QString QString::fromLatin1(const char *str, qsizetype size)
Latin-1文字列 `str` の先頭size 文字で初期化された `QString ` を返します。
size が-1 の場合、代わりにstrlen(str) が使用されます。
toLatin1()、fromUtf8()、およびfromLocal8Bit()も参照してください 。
[static, since 6.0] QString QString::fromLatin1(QByteArrayView str)
Latin-1文字列「str 」で初期化されたQString を返します。
注: バイト配列内のヌルバイト('\0')は、 この文字列に含まれ、Unicodeのヌル文字(U+0000)に変換されます。
これはオーバーロードされた関数です。
この関数は Qt 6.0 で導入されました。
[static] QString QString::fromLatin1(const QByteArray &str)
Latin-1文字列「str 」で初期化されたQString を返します。
注: バイト配列内のヌルバイト('\0')は、 この文字列に含まれ、Unicodeのヌル文字(U+0000)に変換されます。この動作はQt 5.xとは異なります。
これはオーバーロードされた関数です。
[static] QString QString::fromLocal8Bit(const char *str, qsizetype size)
8ビット文字列 `str` の先頭 `size ` 文字で初期化された `QString ` を返します。
size が-1 の場合、代わりにstrlen(str) が使用されます。
Unix システムでは、これはfromUtf8() と同等です。なお、Apple システムでは、この関数はNSString.defaultCStringEncodingやCFStringGetSystemEncoding()を考慮しません。これらの関数は通常、レガシーな「Western (Mac OS Roman)」エンコーディングを返すためですが、このエンコーディングは最新の Apple オペレーティングシステムでは使用すべきではないからです。 Windows では、システムの現在のコードページが使用されます。
toLocal8Bit()、fromLatin1()、およびfromUtf8()も参照してください 。
[static, since 6.0] QString QString::fromLocal8Bit(QByteArrayView str)
8ビット文字列 `str` で初期化された `QString ` を返します。
Unix システムでは、これは `fromUtf8()` と同等です。なお、Apple システムでは、この関数は`NSString.defaultCStringEncoding` や`CFStringGetSystemEncoding()` を考慮しません。これらの関数は通常、レガシーな「Western (Mac OS Roman)」エンコーディングを返すためですが、このエンコーディングは現代の Apple オペレーティングシステムでは使用すべきではありません。 Windows では、システムの現在のコードページが使用されます。
注: バイト配列内のヌルバイト('\0')は、 この文字列に含まれ、Unicode ヌル文字 (U+0000) に変換されます。
これはオーバーロードされた関数です。
この関数は Qt 6.0 で導入されました。
[static] QString QString::fromLocal8Bit(const QByteArray &str)
8ビット文字列 `str` で初期化された `QString ` を返します。
Unix システムでは、これは `fromUtf8()` と同等です。なお、Apple システムでは、この関数は`NSString.defaultCStringEncoding` や`CFStringGetSystemEncoding()` を考慮しません。これらの関数は通常、レガシーな「Western (Mac OS Roman)」エンコーディングを返すためですが、このエンコーディングは最新の Apple オペレーティングシステムでは使用すべきではありません。 Windows では、システムの現在のコードページが使用されます。
注: バイト配列内のヌルバイト('\0')は、 この文字列に含まれ、Unicode ヌル文字(U+0000)に変換されます。この動作は Qt 5.x とは異なります。
これはオーバーロードされた関数です。
[static] QString QString::fromNSString(const NSString *string)
string のNSStringのコピーを含む新しいQString を生成します。
注:この関数は 、macOS および iOS でのみ利用可能です。
[static, since 6.10] QString QString::fromRawData(const char16_t *unicode, qsizetype size)
配列 `unicode` の先頭から `size ` 個の Unicode 文字を使用する `QString ` を生成します。`unicode ` 内のデータはコピーされません。呼び出し側は、QString (またはその変更されていないコピー)が存在する限り、unicode が削除または変更されないことを保証できなければなりません。
QString またはそのコピーを変更しようとすると、データのディープコピーが作成され、生データが変更されないことが保証されます。
以下は、データをQString にコピーすることなく、メモリ内の生データに対してQRegularExpression を使用する方法の例です。
QRegularExpression pattern("\u00A4");
static const char16_t unicode[] = {
0x005A, 0x007F, 0x00A4, 0x0060,
0x1009, 0x0020, 0x0020};
QString str = QString::fromRawData(unicode, std::size(unicode));
if (str.contains(pattern)) {
// ...
}警告: fromRawData() で作成された文字列は 、生データの位置size に '\0' 文字が含まれていない限り、'\0'で終了しません。つまり、unicode() は '\0' で終了する文字列を返しません(utf16() は生データをコピーする代償を払ってこれを返しますが)。
この関数は Qt 6.10 で導入されました。
fromUtf16()、setRawData()、data()、constData()、nullTerminate()、およびnullTerminated()も参照してください 。
[static] QString QString::fromRawData(const QChar *unicode, qsizetype size)
これはオーバーロードされた関数です。
[static] QString QString::fromStdString(const std::string &str)
str 文字列のコピーを返します。指定された文字列はUTF-8でエンコードされているものとみなされ、fromUtf8()関数を用いてQString に変換されます。
fromLatin1()、fromLocal8Bit()、fromUtf8()、およびQByteArray::fromStdString()も参照してください 。
[static] QString QString::fromStdU16String(const std::u16string &str)
str 文字列のコピーを返します。指定された文字列はUTF-16でエンコードされているものとみなされ、fromUtf16()関数を使用してQString に変換されます。
fromUtf16()、fromStdWString()、およびfromStdU32String()も参照してください 。
[static] QString QString::fromStdU32String(const std::u32string &str)
str 文字列のコピーを返します。指定された文字列はUTF-32でエンコードされているものとみなされ、fromUcs4()関数を使用してQString に変換されます。
fromUcs4()、fromStdWString()、およびfromStdU16String()も参照してください 。
[static] QString QString::fromStdWString(const std::wstring &str)
str 文字列のコピーを返します。指定された文字列は、wchar_tのサイズが2バイトの場合(Windowsなど)、utf16でエンコードされているものとみなされ、wchar_tのサイズが4バイトの場合(ほとんどのUnixシステム)、ucs4でエンコードされているものとみなされます。
関連項目: fromUtf16(),fromLatin1(),fromLocal8Bit(),fromUtf8(),fromUcs4(),fromStdU16String(), およびfromStdU32String()。
[static] QString QString::fromUcs4(const char32_t *unicode, qsizetype size = -1)
Unicode文字列 `unicode `(UTF-32でエンコード)の先頭size 文字で初期化された `QString ` を返します。
size が-1(デフォルト)の場合、unicode は '\0' で終了していなければなりません。
関連項目: toUcs4()、fromUtf16()、utf16()、setUtf16()、fromWCharArray()、およびfromStdU32String()。
[static] QString QString::fromUtf8(const char *str, qsizetype size)
UTF-8文字列 `str` の先頭 `size ` バイトで初期化された `QString ` を返します。
size が-1 の場合、代わりにstrlen(str) が使用されます。
UTF-8 は Unicode コーデックであり、QString のような Unicode 文字列のすべての文字を表現することができます。ただし、UTF-8 では無効なシーケンスが存在する可能性があり、そのようなシーケンスが見つかった場合は、1 つ以上の「置換文字」に置き換えられるか、または抑制されます。 これには、非ユニコードシーケンス、非文字、長すぎるシーケンス、または UTF-8 でエンコードされたサロゲートコードポイントが含まれます。
この関数は、受信データ内のすべての UTF-8 文字がデータ内で適切に終了されている限り、受信データを段階的に処理するために使用できます。文字列の末尾にある終了されていない文字は、置換されるか、または削除されます。状態保持型のデコードを行うには、QStringDecoder を使用してください。
toUtf8()、fromLatin1()、およびfromLocal8Bit()も参照してください 。
[static, since 6.0] QString QString::fromUtf8(QByteArrayView str)
UTF-8 文字列 `str` で初期化された `QString ` を返します。
注: バイト配列内のヌルバイト('\0')は、 この文字列に含まれ、Unicodeのヌル文字(U+0000)に変換されます。
これはオーバーロードされた関数です。
この関数は Qt 6.0 で導入されました。
[static] QString QString::fromUtf8(const QByteArray &str)
UTF-8文字列「str 」で初期化されたQString を返します。
注: バイト配列内のヌルバイト('\0')は、 この文字列に含まれ、Unicodeのヌル文字(U+0000)に変換されます。この動作はQt 5.xとは異なります。
これはオーバーロードされた関数です。
[static, since 6.1] QString QString::fromUtf8(const char8_t *str)
このオーバーロードは、C++20モードでコンパイルする場合にのみ利用可能です。
これはオーバーロードされた関数です。
この関数は Qt 6.1 で導入されました。
[static, since 6.0] QString QString::fromUtf8(const char8_t *str, qsizetype size)
このオーバーロードは、C++20モードでコンパイルする場合にのみ利用可能です。
これはオーバーロードされた関数です。
この関数は Qt 6.0 で導入されました。
[static] QString QString::fromUtf16(const char16_t *unicode, qsizetype size = -1)
Unicode文字列 `unicode `(ISO-10646-UTF-16でエンコード)の先頭size 文字で初期化された `QString ` を返します。
size が -1 (デフォルト) の場合、unicode は '\0' で終了していなければなりません。
この関数は、バイト順マーク (BOM) の有無を確認します。BOM が存在しない場合、ホストのバイト順が採用されます。
この関数は、他の Unicode 変換に比べて処理速度が遅いです。可能であれば、QString(constQChar *, qsizetype) またはQString(constQChar *) を使用してください。
QString Unicode データのディープコピーを作成します。
utf16()、setUtf16()、およびfromStdU16String()も参照してください 。
[static] QString QString::fromWCharArray(const wchar_t *string, qsizetype size = -1)
string が指すwchar_t 配列の先頭からsize コード単位を読み取り、それらをUnicodeに変換して、結果をQString として返します。wchar_t が使用するエンコーディングは、型のサイズが4バイトの場合はUTF-32、2バイトの場合はUTF-16であるとみなされます。
size が-1(デフォルト)の場合、string は「\0 」で終了していなければなりません。
fromUtf16()、fromLatin1()、fromLocal8Bit()、fromUtf8()、fromUcs4()、およびfromStdWString()も参照してください 。
QChar &QString::front()
文字列の先頭文字への参照を返します。operator[](0) と同じです。
この関数は、STLとの互換性を確保するために提供されています。
警告: 空の文字列に対してこの関数を呼び出すと 、未定義の挙動となります。
関連項目: back()、at()、およびoperator[]()。
QChar QString::front() const
文字列の先頭文字を返します。at(0) と同じです。
この関数は、STLとの互換性を確保するために提供されています。
警告: 空の文字列に対してこの関数を呼び出すと 、未定義の挙動を引き起こします。
関連項目: back()、at()、およびoperator[]()。
qsizetype QString::indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、str によって解釈されるLatin-1文字列が最初に現れるインデックス位置を、インデックス位置from から前方へ検索して返します。str が見つからない場合は-1を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
例:
QString x = "sticky question";
QString y = "sti";
x.indexOf(y); // returns 0
x.indexOf(y, 1); // returns 10
x.indexOf(y, 10); // returns 10
x.indexOf(y, 11); // returns -1from が-1の場合、検索は最後の文字から開始され、-2の場合は最後から2番目の文字から開始される、というように続きます。
lastIndexOf()、contains()、count()も参照してください 。
qsizetype QString::indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const
文字列内で正規表現 `re ` の最初の一致箇所を、インデックス位置 `from` から前方へ検索して返します。`re ` がどこにも一致しなかった場合は -1 を返します。
一致に成功し、かつ `rmatch ` が `nullptr` ではない場合、一致の結果は `rmatch` が指す `QRegularExpressionMatch ` オブジェクトにも書き込まれます。
例:
QString str = "the minimum";
str.indexOf(QRegularExpression("m[aeiou]"), 0); // returns 4
QRegularExpressionMatch match;
str.indexOf(QRegularExpression("m[aeiou]"), 0, &match); // returns 4
// match.captured() == miqsizetype QString::indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字列「str 」が最初に現れる位置を、インデックス位置「from 」から前方へ検索して返します。str が見つからない場合は-1を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
例:
QString x = "sticky question";
QString y = "sti";
x.indexOf(y); // returns 0
x.indexOf(y, 1); // returns 10
x.indexOf(y, 10); // returns 10
x.indexOf(y, 11); // returns -1from が-1の場合、検索は最後の文字から開始されます。-2の場合は最後から2番目の文字から開始され、以下同様です。
lastIndexOf()、contains()、およびcount()も参照してください 。
qsizetype QString::indexOf(QChar ch, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字 `ch ` が最初に現れる位置のインデックスを、インデックス位置 `from` から前方へ検索して返します。`ch ` が見つからない場合は `-1` を返します。
この関数は、QString::indexOf() をオーバーロードしています。
[noexcept] qsizetype QString::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字列 `str ` が最初に現れる位置のインデックスを、インデックス位置 `from` から前方へ検索して返します。`str ` が見つからない場合は -1 を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
from が -1 の場合、検索は最後の文字から開始されます。-2 の場合は最後から 2 番目の文字から開始され、以下同様です。
この関数は、QString::indexOf() をオーバーロードしています。
QStringView::indexOf()、lastIndexOf()、contains()、およびcount()も参照してください 。
QString &QString::insert(qsizetype position, const QString &str)
指定されたインデックスposition に文字列 `str ` を挿入し、この文字列への参照を返します。
例:
この文字列は、挿入に合わせて長さが拡張されます。position が文字列の末尾を超えている場合、position に到達するまでスペース文字が文字列に追加され、その後にstr が続きます。
関連項目: append()、prepend()、replace()、およびremove()。
QString &QString::insert(qsizetype position, QChar ch)
文字列内の指定されたインデックスposition の位置に、ch を挿入します。
この文字列は、挿入に合わせて長さが増加します。position が文字列の末尾を超えている場合、このposition に達するまでスペース文字が文字列に追加され、その後にch が続きます。
この関数は、QString::insert() をオーバーロードしています。
QString &QString::insert(qsizetype position, QLatin1StringView str)
str によって認識されたLatin-1文字列を、指定されたインデックスposition の位置に挿入します。
この文字列は、挿入に合わせて長さが拡張されます。position が文字列の末尾を超えている場合、このposition に到達するまでスペース文字が文字列に追加され、その後にstr が追加されます。
この関数は、QString::insert() をオーバーロードしています。
[since 6.0] QString &QString::insert(qsizetype position, QStringView str)
指定されたインデックス `position ` の位置に文字列ビュー `str ` を挿入し、この文字列への参照を返します。
この文字列は、挿入に合わせて長さが拡張されます。position が文字列の末尾を超えている場合、position に到達するまでスペース文字が文字列に追加され、その後にstr が続きます。
この関数は、QString::insert() をオーバーロードしています。
この関数は Qt 6.0 で導入されました。
[since 6.5] QString &QString::insert(qsizetype position, QUtf8StringView str)
指定されたインデックスposition に、UTF-8 文字列ビューstr を挿入します。
注: 可変幅の UTF-8 エンコードされた文字列データを挿入することは 、UTF-16 (QStringView) や Latin-1 (QLatin1StringView) などの固定幅の文字列データを挿入するよりも、概念的には処理に時間がかかるため、使用は控えめにすべきです。
この文字列は、挿入に合わせて長さが増加します。position が文字列の末尾を超えている場合、このposition に到達するまでスペース文字が文字列に追加され、その後にstr が続きます。
この関数は、QString::insert() をオーバーロードしています。
この関数は Qt 6.5 で導入されました。
QString &QString::insert(qsizetype position, const QByteArray &str)
str の内容を UTF-8 として解釈し、指定されたインデックスposition にその内容をエンコードした Unicode 文字列を挿入し、この文字列への参照を返します。
この文字列は、挿入に合わせて長さが増加します。position が文字列の末尾を超えている場合、このposition に到達するまでスペース文字が文字列に追加され、その後にstr が続きます。
QT_NO_CAST_FROM_ASCII が定義されている場合、この関数は利用できません。
この関数は、QString::insert() をオーバーロードしています。
QString &QString::insert(qsizetype position, const char *str)
指定されたインデックス `position ` の位置に C 文字列 `str ` を挿入し、この文字列への参照を返します。
この文字列は、挿入に合わせて長さが拡張されます。position が文字列の末尾を超えている場合、position に達するまでスペース文字が文字列に追加され、その後にstr が続きます。
QT_NO_CAST_FROM_ASCII が定義されている場合、この関数は利用できません。
この関数は、QString::insert() をオーバーロードします。
QString &QString::insert(qsizetype position, const QChar *unicode, qsizetype size)
QChar 配列unicode の先頭からsize 文字分を、文字列内の指定されたインデックスposition の位置に挿入します。
この文字列は、挿入に対応するために長さが増加します。position が文字列の末尾を超えている場合、このposition に達するまでスペース文字が文字列に追加され、その後にQChar 配列unicode のsize 文字が続きます。
この関数は、QString::insert() をオーバーロードしています。
[constexpr noexcept] bool QString::isEmpty() const
文字列に文字が含まれていない場合は `true ` を返し、それ以外の場合は `false` を返します。
例:
QString().isEmpty(); // returns true
QString("").isEmpty(); // returns true
QString("x").isEmpty(); // returns false
QString("abc").isEmpty(); // returns falsesize()も参照してください 。
bool QString::isLower() const
文字列が小文字の場合、つまりtoLower()によるフォールディング結果と同一である場合に、true を返します。
ただし、これは文字列に大文字が含まれていないことを意味するわけではないことに注意してください(一部の大文字には小文字へのフォールディングが存在せず、toLower() によって変更されません)。詳細については、Unicode 規格のセクション 3.13 を参照してください。
QChar::toLower() およびisUpper()も参照してください 。
[constexpr] bool QString::isNull() const
この文字列がnullの場合はtrue を返し、それ以外の場合はfalse を返します。
例:
QString().isNull(); // returns true
QString("").isNull(); // returns false
QString("abc").isNull(); // returns falseQt XML では、歴史的な理由から、null 文字列と空文字列を区別しています。ほとんどのアプリケーションにおいて重要なのは、文字列にデータが含まれているかどうかであり、これはisEmpty() 関数を使用して判断できます。
isEmpty()も参照してください 。
bool QString::isRightToLeft() const
文字列が右から左に読み込まれる場合、true を返します。
QStringView::isRightToLeft()も参照してください 。
bool QString::isUpper() const
文字列が大文字の場合、つまりtoUpper()によるフォールディングの結果と一致する場合は、true を返します。
ただし、これは文字列に小文字が含まれていないことを意味するわけではないことに注意してください(小文字の中には大文字へのフォールディングがないものもあり、それらは `toUpper()` によって変更されません)。詳細については、Unicode 規格の 3.13 節を参照してください。
QChar::toUpper() およびisLower()も参照してください 。
[noexcept] bool QString::isValidUtf16() const
文字列に有効な UTF-16 エンコードデータが含まれている場合は `true ` を返し、そうでない場合は `false ` を返します。
この関数はデータに対して特別な検証を行わないことに注意してください。単に、そのデータが UTF-16 から正常にデコードできるかどうかを確認するだけです。データはホストバイト順であると仮定されます。BOM の有無は意味を持ちません。
QStringView::isValidUtf16()も参照してください 。
[since 6.0] QString QString::last(qsizetype n) &&
[since 6.0] QString QString::last(qsizetype n) const &
この文字列の末尾からn 文字分を含む文字列を返します。
注: n < 0 またはn >size() の場合、動作は 未定義です。
これらの関数は Qt 6.0 で導入されました。
関連項目: first()、sliced()、endsWith()、chopped()、chop()、truncate()、およびslice()。
qsizetype QString::lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const
文字列内で、正規表現 `re ` の最後の一致箇所(インデックス位置 `from` の直前から始まるもの)のインデックス位置を返します。
from が -1 の場合、検索は最後の文字から開始されます。-2 の場合は最後から 2 番目の文字から、というように続きます。
re がどこにも一致しなかった場合は -1 を返します。
一致に成功し、かつ `rmatch ` が `nullptr` ではない場合、一致の結果は `rmatch` が指す `QRegularExpressionMatch ` オブジェクトにも書き込まれます。
例:
QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]")); // returns 8
QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match); // returns 8
// match.captured() == mu注: 正規表現のマッチングアルゴリズムの仕組み上 、この関数は実際には、文字列の先頭からfrom の位置に到達するまで繰り返しマッチングを行います。
注: 0文字に一致する可能性のある正規表現re を検索する場合、 from に負の値を指定することで、データの末尾での一致が検索から除外されます。これは、-1 が通常、文字列の末尾から検索すると考えられているにもかかわらず、末尾での一致は最後の文字の直後にあるため、除外されるからです。 このような末尾の空の一致を含めるには、from に正の値を指定するか、from パラメータを完全に省略してください。
qsizetype QString::lastIndexOf(const QString &str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字列「str 」が最後に現れる位置のインデックスを、インデックス位置「from 」から逆方向に検索して返します。
from が -1 の場合、検索は最後の文字から開始されます。-2 の場合は最後から 2 番目の文字から開始され、以下同様です。
str が見つからない場合は -1 を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
例:
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1注: 長さ0のstr を検索する場合 、通常-1 は文字列の末尾から検索すると考えられていますが、負のfrom を指定すると、データの末尾にある一致は検索対象から除外されます。これは、末尾の一致が最後の文字の後に位置するため、除外されるからです。 このような末尾の空の一致を含めるには、from に正の値を指定するか、from パラメータを完全に省略してください。
indexOf()、contains()、およびcount()も参照してください 。
[noexcept, since 6.3] qsizetype QString::lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この関数は、QString::lastIndexOf() をオーバーロードしています。
この関数は Qt 6.3 で導入されました。
[since 6.2] qsizetype QString::lastIndexOf(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字列「str 」が最後に現れる位置のインデックスを返します。str が見つからない場合は-1を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
例:
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1この関数は、QString::lastIndexOf() をオーバーロードしています。
この関数は Qt 6.2 で導入されました。
indexOf()、contains()、およびcount()も参照してください 。
[noexcept, since 6.2] qsizetype QString::lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字列 `str ` が最後に現れる位置のインデックスを返します。`str ` が見つからない場合は -1 を返します。
cs がQt::CaseSensitive (デフォルト)の場合、大文字と小文字を区別して検索します。それ以外の場合は、大文字と小文字を区別せずに検索します。
この関数は、QString::lastIndexOf() をオーバーロードします。
この関数は Qt 6.2 で導入されました。
indexOf()、contains()、およびcount()も参照してください 。
[since 6.2] qsizetype QString::lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
文字列内で正規表現 `re ` の最後の一致箇所を示すインデックスを返します。re がどこにも一致しなかった場合は -1 を返します。
一致に成功し、かつ `rmatch ` が `nullptr` ではない場合、一致の結果は `rmatch` が指す `QRegularExpressionMatch ` オブジェクトにも書き込まれます。
例:
QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]")); // returns 8
QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match); // returns 8
// match.captured() == mu注: 正規表現のマッチングアルゴリズムの仕組み上 、この関数は文字列の先頭から末尾に到達するまで、実際には繰り返しマッチングを行います。
この関数は、QString::lastIndexOf() をオーバーロードしています。
この関数は Qt 6.2 で導入されました。
[since 6.2] qsizetype QString::lastIndexOf(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で「str 」という文字列が最後に現れる位置のインデックスを返します。「str 」が見つからない場合は -1 を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
例:
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1この関数はQString::lastIndexOf() をオーバーロードしています。
この関数は Qt 6.2 で導入されました。
indexOf()、contains()、およびcount()も参照してください 。
qsizetype QString::lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字「ch 」が最後に現れる位置を、インデックス位置「from 」から逆方向に検索して返します。
この関数は、QString::lastIndexOf() をオーバーロードしています。
qsizetype QString::lastIndexOf(QLatin1StringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、str によって認識されたLatin-1文字列が最後に現れたインデックス位置を、インデックス位置from から逆方向に検索して返します。
from が -1 の場合は最後の文字から、-2 の場合は最後から 2 番目の文字から、というように検索を開始します。
str が見つからない場合は-1を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
例:
QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y); // returns 6
x.lastIndexOf(y, 6); // returns 6
x.lastIndexOf(y, 5); // returns 2
x.lastIndexOf(y, 1); // returns -1注: 長さ0のstr を検索する場合 、負のfrom を指定すると、データの末尾にある一致は検索対象から除外されます。これは、-1 が通常、文字列の末尾から検索すると考えられているにもかかわらず、末尾の一致は最後の文字の後に位置するため、除外されるからです。 このような末尾の空の一致を含めるには、from に正の値を指定するか、from パラメータを完全に省略してください。
この関数は、QString::lastIndexOf() をオーバーロードしています。
indexOf()、contains()、およびcount()も参照してください 。
[noexcept] qsizetype QString::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、文字列ビュー `str ` が最後に現れるインデックス位置を、インデックス位置 `from` から逆方向に検索して返します。
from が -1 の場合、検索は最後の文字から開始されます。-2 の場合は最後から 2 番目の文字から開始され、以下同様です。
str が見つからない場合は -1 を返します。
cs がQt::CaseSensitive (デフォルト) の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
注: 長さ 0 の `str` を検索する場合 、`from` を負の値に設定することで、データの末尾にある一致が検索から除外されます。これは、-1 が通常、文字列の末尾から検索すると考えられているにもかかわらずです。末尾の一致は最後の文字の後に位置するため、除外されるのです。 このような末尾の空の一致を含めるには、from に正の値を指定するか、from パラメータを完全に省略してください。
この関数は、QString::lastIndexOf() をオーバーロードしています。
indexOf()、contains()、およびcount()も参照してください 。
この文字列のn 文字分(つまり、この文字列の先頭から、インデックス位置n にある要素まで(その要素自体は含まない))を含む部分文字列を返します。
n が範囲外になる可能性がないことが分かっている場合は、新しいコードではfirst() を使用してください。こちらの方が高速です。
n がsize() 以上、または 0 未満の場合、文字列全体が返されます。
first()、last()、startsWith()、chopped()、chop()、およびtruncate()も参照してください 。
QString QString::leftJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const
width の長さの文字列を返します。この文字列には、fill 文字でパディングされた元の文字列が含まれます。
truncate がfalse であり、かつその文字列のsize() がwidth より大きい場合、返される文字列はその文字列のコピーとなります。
truncate がtrue であり、その文字列のsize() がwidth より大きい場合、位置width 以降の文字列のコピーからそれらの文字が削除され、そのコピーが返されます。
QString str = "Pineapple";
str = str.leftJustified(5, '.', true); // str == "Pinea"rightJustified()も参照してください 。
[constexpr noexcept] qsizetype QString::length() const
この文字列に含まれる文字数を返します。size() と同等です。
resize()も参照してください 。
[static] int QString::localeAwareCompare(const QString &s1, const QString &s2)
s1 とs2 を比較し、s1 がs2 より小さい、等しい、または大きい場合に、それぞれ 0 より小さい、0 より等しい、または 0 より大きい整数を返します。
比較は、ロケールおよびプラットフォームに依存する方式で行われます。この関数を使用して、ユーザーにソートされた文字列のリストを表示します。
compare()、QLocale 、およびComparing Stringsも参照してください 。
[since 6.0] int QString::localeAwareCompare(QStringView other) const
この文字列をother の文字列と比較し、この文字列がother の文字列より小さい、等しい、または大きい場合に、それぞれ0より小さい、0、または0より大きい整数を返します。
比較は、ロケールおよびプラットフォームに依存した方法で実行されます。この関数を使用して、ユーザーにソート済みの文字列リストを表示します。
localeAwareCompare(*this, other) と同じです。
この関数は、QString::localeAwareCompare() をオーバーロードします。
この関数は Qt 6.0 で導入されました。
Comparing Stringsも参照してください 。
int QString::localeAwareCompare(const QString &other) const
この文字列をother の文字列と比較し、この文字列がother の文字列より小さい、等しい、または大きい場合に、それぞれ0より小さい、0、または0より大きい整数を返します。
比較は、ロケールおよびプラットフォームに依存した方法で行われます。この関数を使用して、ユーザーにソートされた文字列のリストを表示します。
localeAwareCompare(*this, other) と同じです。
この関数は、QString::localeAwareCompare() をオーバーロードしています。
Comparing Stringsも参照してください 。
[static, since 6.0] int QString::localeAwareCompare(QStringView s1, QStringView s2)
s1 とs2 を比較し、s1 がs2 より小さい、等しい、または大きい場合に、それぞれ 0 より小さい、0 より等しい、または 0 より大きい整数を返します。
比較は、ロケールおよびプラットフォームに依存する方式で実行されます。この関数を使用して、ユーザーにソートされた文字列のリストを表示します。
この関数は、QString::localeAwareCompare() をオーバーロードしています。
この関数は Qt 6.0 で導入されました。
Comparing Stringsも参照してください 。
[static constexpr noexcept, since 6.8] qsizetype QString::maxSize()
[constexpr noexcept, since 6.8] qsizetype QString::max_size() const
この関数は、その文字列が理論上保持できる要素の最大数を返します。実際には、システムで利用可能なメモリ量によって制限されるため、この数ははるかに小さくなる場合があります。
これらの関数は Qt 6.8 で導入されました。
QString QString::mid(qsizetype position, qsizetype n = -1) &&
QString QString::mid(qsizetype position, qsizetype n = -1) const &
指定されたposition のインデックスから、インデックス位置にある要素まで(ただし、その要素自体は含まない)の範囲で、この文字列のn 文字を含む文字列を返します position + nまでの部分(ただし、その要素自体は含まない)を格納した文字列を返します。
position とn が範囲外になることがないことが分かっている場合は、新しいコードでは代わりにsliced() を使用してください。処理速度が速いからです。
position のインデックスが文字列の長さを超えている場合、null 文字列を返します。指定されたposition から始まる文字列内で利用可能なn 文字数が 未満である場合、またはn が -1(デフォルト)である場合、この関数は指定されたposition から利用可能なすべての文字を返します。
関連項目: first()、last()、sliced()、chopped()、chop()、truncate()、およびslice()。
QString QString::normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const
Unicode規格のversion に従い、指定されたUnicode正規化mode で文字列を返します。
[since 6.10] QString &QString::nullTerminate()
この文字列データがヌル終端されていない場合、このメソッドはデータのディープコピーを作成し、ヌル終端にします。
QString はデフォルトでヌル終端されていますが、場合によっては(例えばfromRawData()を使用する場合など)、文字列データが必ずしも\0 文字で終わるわけではないため、ヌル終端された文字列を期待するメソッドを呼び出す際に問題となる可能性があります。
この関数はQt 6.10で導入されました。
nullTerminated()、fromRawData()、およびsetRawData()も参照してください 。
[since 6.10] QString QString::nullTerminated() &&
[since 6.10] QString QString::nullTerminated() const &
この文字列の、常にヌル文字で終了するコピーを返します。
これらの関数は Qt 6.10 で導入されました。
nullTerminate()、fromRawData()、およびsetRawData()も参照してください 。
[static] QString QString::number(long n, int base = 10)
指定されたbase に従って、n という数値に相当する文字列を返します。
基数はデフォルトで 10 であり、2 から 36 の範囲で指定する必要があります。10 以外の基数の場合、n は符号なし整数として扱われます。
書式設定には常に「QLocale::C 」、すなわち「English/UnitedStates」が使用されます。数値のローカライズされた文字列表現を取得するには、適切なロケールを指定してQLocale::toString() を使用してください。
long a = 63;
QString s = QString::number(a, 16); // s == "3f"
QString t = QString::number(a, 16).toUpper(); // t == "3F"setNum()も参照してください 。
[static] QString QString::number(double n, char format = 'g', int precision = 6)
浮動小数点数 `n` を表す文字列を返します。
指定された `format ` および `precision` に基づいてフォーマットされた、n を表す文字列を返します。
指数を含む形式の場合、指数には符号が表示され、少なくとも 2 桁になります。必要に応じて、指数は 0 で左詰めされます。
setNum()、QLocale::toString()、QLocale::FloatingPointPrecisionOption 、およびNumber formatsも参照してください 。
[static] QString QString::number(int n, int base = 10)
これはオーバーロードされた関数です。
[static] QString QString::number(qlonglong n, int base = 10)
これはオーバーロードされた関数です。
[static] QString QString::number(qulonglong n, int base = 10)
これはオーバーロードされた関数です。
[static] QString QString::number(uint n, int base = 10)
これはオーバーロードされた関数です。
[static] QString QString::number(ulong n, int base = 10)
これはオーバーロードされた関数です。
QString &QString::prepend(const QString &str)
この文字列の先頭に「str 」という文字列を追加し、この文字列への参照を返します。
この操作は通常、非常に高速(定数時間)です。これは、QString が文字列データの先頭に余分な領域を事前に割り当てておくため、毎回文字列全体を再割り当てすることなく、文字列を拡張できるからです。
例:
append() およびinsert()も参照してください 。
QString &QString::prepend(QChar ch)
この文字列の先頭に「ch 」という文字列を追加します。
この関数は、QString::prepend() をオーバーロードしています。
QString &QString::prepend(QLatin1StringView str)
str で認識された Latin-1 文字列を、この文字列の先頭に追加します。
この関数は、QString::prepend() をオーバーロードします。
[since 6.0] QString &QString::prepend(QStringView str)
文字列ビュー `str ` をこの文字列の先頭に追加し、この文字列への参照を返します。
この関数は、QString::prepend() をオーバーロードしています。
この関数は Qt 6.0 で導入されました。
[since 6.5] QString &QString::prepend(QUtf8StringView str)
UTF-8文字列ビュー `str ` をこの文字列の先頭に追加します。
この関数は、QString::prepend() をオーバーロードします。
この関数は Qt 6.5 で導入されました。
QString &QString::prepend(const QByteArray &ba)
この文字列の先頭に、バイト配列 `ba ` を追加します。このバイト配列は、fromUtf8() 関数を使用して Unicode に変換されます。
アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この関数を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列がQObject::tr()を経由するようにしたい場合などに役立ちます。
この関数は、QString::prepend() をオーバーロードしています。
QString &QString::prepend(const char *str)
この文字列の先頭に「str 」という文字列を追加します。const char 型のポインタは、fromUtf8() 関数を使用して Unicode に変換されます。
アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この関数を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列がQObject::tr() を経由するようにしたい場合などに役立ちます。
この関数は、QString::prepend() をオーバーロードしています。
QString &QString::prepend(const QChar *str, qsizetype len)
QChar 配列str に含まれるlen 文字をこの文字列の先頭に追加し、この文字列への参照を返します。
この関数は、QString::prepend() をオーバーロードしています。
void QString::push_back(const QString &other)
この関数はSTLとの互換性を確保するために提供されており、指定されたother 文字列をこの文字列の末尾に追加します。これはappend(other) と同等です。
append()も参照してください 。
void QString::push_back(QChar ch)
指定されたch 文字を、この文字列の末尾に追加します。
これはオーバーロードされた関数です。
void QString::push_front(const QString &other)
この関数はSTLとの互換性を確保するために提供されており、指定されたother 文字列をこの文字列の先頭に追加します。これはprepend(other) と同等です。
prepend()も参照してください 。
void QString::push_front(QChar ch)
指定されたch 文字を、この文字列の先頭に追加します。
これはオーバーロードされた関数です。
QString::reverse_iterator QString::rbegin()
文字列の最初の文字を逆順で指す、STL 形式の逆イテレータを返します。
警告: 返されたイテレータは 、切り離された場合や、QString が変更された場合に無効化されます。
関連項目: begin()、crbegin()、rend()も参照してください 。
QString::const_reverse_iterator QString::rbegin() const
これはオーバーロードされた関数です。
QString &QString::remove(const QRegularExpression &re)
文字列の中から正規表現「re 」のすべての出現箇所を削除し、その文字列への参照を返します。例:
QString r = "Telephone";
r.remove(QRegularExpression("[aeiou]."));
// r == "The"要素の削除を行っても、文字列の容量は維持され、割り当てられたメモリ量は減りません。余分な容量を削減し、可能な限り多くのメモリを解放するには、文字列のサイズに対する最後の変更後に `squeeze()` を呼び出してください。
indexOf()、lastIndexOf()、およびreplace()も参照してください 。
QString &QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この文字列から「ch 」という文字列をすべて削除し、この文字列への参照を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
例:
これは `replace(ch, "", cs)` と同じです。
要素の削除を行っても、文字列の容量は維持され、割り当てられたメモリ量は減りません。余分な容量を削減し、可能な限り多くのメモリを解放するには、文字列のサイズに対する最後の変更後にsqueeze()を呼び出してください。
replace()も参照してください 。
QString &QString::remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この文字列から、指定されたstr 文字列のすべての出現箇所を削除し、この文字列への参照を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
これは、replace(str, "", cs) と同じです。
要素の削除は、文字列の容量を維持し、割り当てられたメモリ量を減らすことはありません。余分な容量を削減し、可能な限り多くのメモリを解放するには、文字列のサイズに対する最後の変更後に `squeeze()` を呼び出してください。
replace()も参照してください 。
QString &QString::remove(qsizetype position, qsizetype n)
指定されたposition インデックスから、文字列からn 文字を削除し、その文字列への参照を返します。
指定されたposition インデックスが文字列内に存在する場合でも、position +n が文字列の末尾を超えている場合、文字列は指定されたposition の位置で切り詰められます。
n が 0 以下の場合、何も変更されません。
QString s = "Montreal";
s.remove(1, 4);
// s == "Meal"要素の削除によって、文字列の容量は維持され、割り当てられたメモリ量は減りません。余分な容量を削減し、可能な限り多くのメモリを解放するには、文字列のサイズに対する最後の変更後にsqueeze() を呼び出してください。
insert() およびreplace()も参照してください 。
QString &QString::remove(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
str で解釈された、指定された Latin-1 文字列のすべての出現箇所をこの文字列から削除し、この文字列への参照を返します。
cs が `Qt::CaseSensitive ` (デフォルト) の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
これは、replace(str, "", cs) と同じです。
要素の削除は、文字列の容量を維持し、割り当てられたメモリ量を減らすことはありません。余分な容量を削減し、可能な限り多くのメモリを解放するには、文字列のサイズに対する最後の変更後に `squeeze()` を呼び出してください。
これはオーバーロードされた関数です。
replace()も参照してください 。
[since 6.5] QString &QString::removeAt(qsizetype pos)
インデックスpos にある文字を削除します。pos が範囲外の場合(つまり、pos >=size()の場合)、この関数は何も行いません。
この関数は Qt 6.5 で導入されました。
remove()も参照してください 。
[since 6.5] QString &QString::removeFirst()
この文字列の先頭文字を削除します。文字列が空の場合、この関数は何も行いません。
この関数は Qt 6.5 で導入されました。
remove()も参照してください 。
[since 6.1] template <typename Predicate> QString &QString::removeIf(Predicate pred)
pred という述語が true を返すすべての要素を文字列から削除します。文字列への参照を返します。
この関数は Qt 6.1 で導入されました。
remove()も参照してください 。
[since 6.5] QString &QString::removeLast()
この文字列の最後の文字を削除します。文字列が空の場合、この関数は何も行いません。
この関数は Qt 6.5 で導入されました。
remove()も参照してください 。
QString::reverse_iterator QString::rend()
文字列の最後の文字の直後を指す、STL 形式の逆方向イテレータを、逆順で返します。
警告: 返されたイテレータは 、QString が切り離された場合、または変更された場合に無効になります。
QString::const_reverse_iterator QString::rend() const
これはオーバーロードされた関数です。
QString QString::repeated(qsizetype times) const
この文字列のコピーを、指定された回数だけtimes で繰り返したものを返します。
times が 1 未満の場合、空の文字列が返されます。
例:
QString str("ab");
str.repeated(4); // returns "abababab"QString &QString::replace(qsizetype position, qsizetype n, const QString &after)
インデックスposition から始まる `n ` の文字列を、文字列 `after ` に置換し、この文字列への参照を返します。
注: 指定されたposition のインデックスが文字列内に存在する場合でも 、position +n が文字列の範囲外になる場合 、n は文字列の末尾で停止するように調整されます。
例:
QString &QString::replace(const QRegularExpression &re, const QString &after)
文字列内の正規表現 `re ` が現れる箇所をすべて `after` に置換します。文字列への参照を返します。例:
QString s = "Banana";
s.replace(QRegularExpression("a[mn]"), "ox");
// s == "Boxoxa"キャプチャグループを含む正規表現の場合、 \1, \2after, ..., といった出現箇所は、対応するキャプチャグループによってキャプチャされた文字列に置換されます。
QString t = "A <i>bon mot</i>.";
t.replace(QRegularExpression("<i>([^<]*)</i>"), "\\emph{\\1}");
// t == "A \\emph{bon mot}."この関数は、QString::replace() をオーバーロードします。
indexOf()、lastIndexOf()、remove()、QRegularExpression 、およびQRegularExpressionMatchも参照してください 。
QString &QString::replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
文字「before 」がすべて見つかるたびに、それを「after 」に置き換え、この文字列への参照を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
この関数は、QString::replace() をオーバーロードしています。
QString &QString::replace(QChar c, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
文字列「c 」がすべて出現する箇所を「after 」に置換し、この文字列への参照を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
注: 置換後もテキストは 再スキャンされません。
この関数は、QString::replace() をオーバーロードします。
QString &QString::replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
文字列内の「ch 」という文字列をすべて「after 」に置き換え、この文字列への参照を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
この関数は、QString::replace() をオーバーロードしています。
QString &QString::replace(QLatin1StringView before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
before で解釈されるこの文字列内の Latin-1 文字列を、すべてafter で解釈される Latin-1 文字列に置換し、この文字列への参照を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
注: 置換後もテキストは 再スキャンされません。
注: before 引数に空の値を指定した場合 、after 引数が文字列の各文字の前後に挿入されます。
この関数は、QString::replace() をオーバーロードしています。
QString &QString::replace(QLatin1StringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
before で取得された Latin-1 文字列が、この文字列内に存在するすべての箇所を、after という文字列に置換し、この文字列への参照を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
注: 置換後もテキストの 再スキャンは行われません。
注: before 引数に空の値を指定した場合 、after 引数が文字列の各文字の前後に挿入されます。
この関数は、QString::replace() をオーバーロードしています。
QString &QString::replace(const QString &before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
文字列「before 」がすべて出現する箇所を「after 」に置き換え、この文字列への参照を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
注: 置換後のテキストは 再スキャンされません。
注: before 引数に空の値を指定した場合 、after 引数は文字列の各文字の前後に挿入されます。
この関数は、QString::replace() をオーバーロードしています。
QString &QString::replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
文字列「before 」がすべて出現する箇所を「after 」に置換し、この文字列への参照を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
例:
QString str = "colour behaviour flavour neighbour";
str.replace(QString("ou"), QString("o"));
// str == "color behavior flavor neighbor"注: 置換テキストは 、挿入後に再スキャンされることはありません。
例:
QString equis = "xxxxxx";
equis.replace("xx", "x");
// equis == "xxx"注: before 引数に空の値を指定した場合 、文字列の各文字の前後に after 引数が挿入されます。
この関数は、QString::replace() をオーバーロードしています。
QString &QString::replace(qsizetype position, qsizetype n, QChar after)
インデックスposition から始まる文字列 `n ` を、文字 `after ` に置き換え、この文字列への参照を返します。
この関数は、QString::replace() をオーバーロードしています。
QString &QString::replace(qsizetype position, qsizetype n, const QChar *after, qsizetype alen)
インデックスposition から始まるn 文字を、配列QChar の最初のalen 文字に置き換え、この文字列への参照を返します。after
n は負の値であってはなりません。
この関数は、QString::replace() をオーバーロードしています。
QString &QString::replace(const QChar *before, qsizetype blen, const QChar *after, qsizetype alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この文字列内の「before 」の最初のblen 文字を、「after 」の最初のalen 文字にそれぞれ置換し、この文字列への参照を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
注: before が空文字列を指している場合 (つまり、blen == 0の場合 )、after が指す文字列は、この文字列の各文字の前後に挿入されます。
この関数は、QString::replace() をオーバーロードしています。
void QString::reserve(qsizetype size)
文字列に、少なくともsize 文字分の空きがあることを確認します。
文字列のサイズが事前に分かっている場合は、この関数を呼び出すことで、文字列の構築中に再割り当てが繰り返されるのを防ぐことができます。これにより、文字列を段階的に構築する際のパフォーマンスが向上します。 文字列に追加を行う一連の操作が長く続くと、再割り当てが数回発生する可能性があり、最後の再割り当ての結果、必要以上に大きな空き領域が残ってしまうことがあります。これは、最初に適切なサイズの割り当てを一度だけ行うよりも非効率的です。
必要なメモリ容量が不明な場合は、通常、上限値として `size` を使用するか、厳密な上限値がこれを大幅に上回る場合は、最も可能性の高いサイズの上限推定値を使用するのが望ましいです。size が過小評価されている場合、予約されたサイズを超えると文字列は必要に応じて拡張されます。その結果、最も楽観的な見積もりよりも大きな割り当てが行われる可能性があり、それを引き起こす操作の速度が低下する恐れがあります。
警告: reserve () はメモリを確保しますが、文字列のサイズを変更するわけではありません。文字列の末尾を超えるデータへのアクセスは、未定義の挙動となります。現在の文字列の末尾を超えるメモリにアクセスする必要がある場合は、resize() を使用してください。
この関数は、長い文字列を構築する必要があり、繰り返しの再割り当てを避けたいコードに役立ちます。この例では、ある条件が満たされるまで文字列に追加を行いたいtrue 、かつそのサイズが reserve() を呼び出す価値があるほど十分に大きいとかなり確信している場合です:
QString result;
qsizetype maxSize;
bool condition;
QChar nextChar;
result.reserve(maxSize);
while (condition)
result.append(nextChar);
result.squeeze();squeeze()、capacity()、およびresize()も参照してください 。
void QString::resize(qsizetype size)
文字列の長さをsize 文字に設定します。
size が現在のサイズより大きい場合、文字列はsize 文字の長さになるよう拡張され、追加された文字は末尾に付加されます。新しい文字は初期化されていません。
size が現在のサイズより小さい場合、位置size より後の文字は文字列から除外されます。
注: resize()は 必要に応じて容量を拡大しますが 、容量を縮小することは決してありません。余分な容量を削除するには、squeeze() を使用してください。
例:
QString s = "Hello world";
s.resize(5);
// s == "Hello"
s.resize(8);
// s == "Hello???" (where ? stands for any character)文字列の末尾に特定の数の同一の文字を追加したい場合は、resize(qsizetype, QChar) のオーバーロードを使用します。
文字列を特定の幅まで拡張し、新しい位置を特定の文字で埋める場合は、leftJustified() 関数を使用します。
size が負の値の場合、ゼロを渡すのと同じ効果になります。
QString r = "Hello";
r = r.leftJustified(10, ' ');
// r == "Hello "truncate()、reserve()、およびsqueeze()も参照してください 。
void QString::resize(qsizetype newSize, QChar fillChar)
resize (qsizetype)とは異なり、このオーバーロードでは、新しい文字をfillChar として初期化します:
QString t = "Hello";
t.resize(t.size() + 10, 'X');
// t == "HelloXXXXXXXXXX"これはオーバーロードされた関数です。
[since 6.8] void QString::resizeForOverwrite(qsizetype size)
文字列の長さをsize 文字に設定します。文字列の長さが長くなった場合、新たに追加された文字は初期化されていません。
この動作は `resize(size)` と同一です。
この関数は Qt 6.8 で導入されました。
resize()も参照してください 。
文字列のn 文字分の末尾の文字を含む部分文字列を返します。
n が範囲外になることがないことが分かっている場合は、新しいコードでは代わりにlast() を使用してください。こちらの方が高速です。
n がsize() 以上、または 0 未満の場合、文字列全体が返されます。
endsWith()、last()、first()、sliced()、chopped()、chop()、truncate()、およびslice()も参照してください 。
QString QString::rightJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const
size()width の文字列を返します。この文字列には、fill という文字に続いて、指定された文字列が含まれます。例:
truncate がfalse であり、かつ文字列のsize()がwidth より大きい場合、返される文字列はその文字列のコピーとなります。
truncate がtrueで、かつ文字列のsize()がwidth より大きい場合、結果の文字列は位置width で切り捨てられます。
QString str = "Pineapple";
str = str.rightJustified(5, '.', true); // str == "Pinea"leftJustified()も参照してください 。
QString QString::section(QChar sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const
この関数は、文字列の一部を返します。
この文字列は、文字「sep 」で区切られた一連のフィールドとして扱われます。返される文字列は、位置start から位置end までのフィールド(両端を含む)で構成されます。end が指定されていない場合、位置start から文字列の末尾までのすべてのフィールドが含まれます。 フィールドの番号付けは、左から数えて 0、1、2…、右から左へ数えて -1、-2… となります。
flags 引数を使用すると、大文字と小文字の区別を行うかどうか、空のフィールドをスキップするかどうか、先頭および末尾の区切り文字の扱い方など、関数の動作のいくつかの側面を制御できます。詳細はSectionFlags を参照してください。
QString str;
QString csv = "forename,middlename,surname,phone";
QString path = "/usr/local/bin/myapp"; // First field is empty
QString::SectionFlag flag = QString::SectionSkipEmpty;
str = csv.section(',', 2, 2); // str == "surname"
str = path.section('/', 3, 4); // str == "bin/myapp"
str = path.section('/', 3, 3, flag); // str == "myapp"start またはend が負の値の場合、文字列の右側からフィールドを数えます。つまり、右端のフィールドは -1、その右のフィールドは -2 というように数えられます。
str = csv.section(',', -3, -2); // str == "middlename,surname"
str = path.section('/', -1); // str == "myapp"split()も参照してください 。
QString QString::section(const QRegularExpression &re, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const
この文字列は、正規表現re で区切られた一連のフィールドとして扱われます。
QString line = "forename\tmiddlename surname \t \t phone";
QRegularExpression sep("\\s+");
str = line.section(sep, 2, 2); // str == "surname"
str = line.section(sep, -3, -2); // str == "middlename surname"警告: この `QRegularExpression ` バージョンを使用すると 、オーバーロードされた文字列版や文字版よりもはるかに処理コストが高くなります。
この関数は、QString::section() をオーバーロードしています。
split() およびsimplified()も参照してください 。
QString QString::section(const QString &sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const
QString str;
QString data = "forename**middlename**surname**phone";
str = data.section("**", 2, 2); // str == "surname"
str = data.section("**", -3, -2); // str == "middlename**surname"この関数は、QString::section() をオーバーロードしています。
split()も参照してください 。
QString &QString::setNum(int n, int base = 10)
指定されたbase 内で、n の表示値を文字列として設定し、その文字列への参照を返します。
基数はデフォルトで 10 であり、2 から 36 の範囲で指定する必要があります。
QString str;
str.setNum(1234); // str == "1234"書式設定には常に「QLocale::C 」、つまり「English/UnitedStates」が使用されます。数値のローカライズされた文字列表現を取得するには、適切なロケールを指定して `QLocale::toString()` を使用してください。
number()も参照してください 。
QString &QString::setNum(long n, int base = 10)
これはオーバーロードされた関数です。
QString &QString::setNum(qlonglong n, int base = 10)
これはオーバーロードされた関数です。
QString &QString::setNum(qulonglong n, int base = 10)
これはオーバーロードされた関数です。
QString &QString::setNum(short n, int base = 10)
これはオーバーロードされた関数です。
QString &QString::setNum(uint n, int base = 10)
これはオーバーロードされた関数です。
QString &QString::setNum(ulong n, int base = 10)
これはオーバーロードされた関数です。
QString &QString::setNum(ushort n, int base = 10)
これはオーバーロードされた関数です。
QString &QString::setNum(double n, char format = 'g', int precision = 6)
n の表示値を、指定されたformat およびprecision に従ってフォーマットした文字列に設定し、その文字列への参照を返します。
これはオーバーロードされた関数です。
number()、QLocale::FloatingPointPrecisionOption 、およびNumber formatsも参照してください 。
QString &QString::setNum(float n, char format = 'g', int precision = 6)
n の出力値を、指定されたformat およびprecision に基づいて書式設定した文字列に設定し、その文字列への参照を返します。
書式設定には常にQLocale::C 、すなわちEnglish/UnitedStatesが使用されます。数値のローカライズされた文字列表現を取得するには、適切なロケールを指定してQLocale::toString()を使用してください。
これはオーバーロードされた関数です。
number()も参照してください 。
QString &QString::setRawData(const QChar *unicode, qsizetype size)
QString をリセットし、配列unicode 内の最初のsize 個のUnicode文字を使用するようにします。unicode 内のデータはコピーされません。呼び出し元は、QString (またはその変更されていないコピー)が存在する限り、unicode が削除または変更されないことを保証できなければなりません。
この関数は、fromRawData()の代わりに使用することで、既存のQString オブジェクトを再利用し、メモリの再割り当てを回避することができます。
fromRawData()、nullTerminate()、およびnullTerminated()も参照してください 。
QString &QString::setUnicode(const QChar *unicode, qsizetype size)
文字列の長さをsize 文字に調整し、unicode をその文字列にコピーします。
unicode がnullptr の場合、何もコピーされませんが、文字列はsize にサイズ変更されます。
unicode() およびsetUtf16()も参照してください 。
[since 6.9] QString &QString::setUnicode(const char16_t *unicode, qsizetype size)
これはオーバーロードされた関数です。
この関数は Qt 6.9 で導入されました。
unicode() およびsetUtf16()も参照してください 。
[since 6.9] QString &QString::setUtf16(const char16_t *unicode, qsizetype size)
文字列の長さをsize 文字に調整し、unicode をその文字列にコピーします。
unicode がnullptr の場合、何もコピーされませんが、文字列は依然としてsize の長さに調整されます。
なお、fromUtf16() とは異なり、この関数は BOM やバイト順の違いを考慮しません。
この関数は Qt 6.9 で導入されました。
utf16() およびsetUnicode()も参照してください 。
void QString::shrink_to_fit()
この関数は、STLとの互換性を確保するために提供されています。これは、squeeze() と同等です。
squeeze()も参照してください 。
QString QString::simplified() const
先頭と末尾の空白文字を削除し、内部の連続した空白文字をすべて1つのスペースに置き換えた文字列を返します。
空白とは、QChar::isSpace() がtrue を返す任意の文字を指します。これには、ASCII 文字 '\t'、'\n'、'\v'、'\f'、'\r'、および ' ' が含まれます。
例:
QString str = " lots\t of\nwhitespace\r\n ";
str = str.simplified();
// str == "lots of whitespace";trimmed()も参照してください 。
[constexpr noexcept] qsizetype QString::size() const
この文字列に含まれる文字数を返します。
文字列の最後の文字は、位置 size() - 1 にあります。
例:
QString str = "World";
qsizetype n = str.size(); // n == 5
str.data()[0]; // returns 'W'
str.data()[4]; // returns 'd'isEmpty() およびresize()も参照してください 。
[since 6.8] QString &QString::slice(qsizetype pos, qsizetype n)
この文字列を、位置pos から、インデックス位置 pos + n; までの範囲(当該位置を含む)でこの文字列を変更し、この文字列への参照を返します。
注: pos < 0、n < 0、またはpos +n >size() の場合、動作は 未定義です。
QString x = u"Nine pineapples"_s;
x.slice(5); // x == "pineapples"
x.slice(4, 3); // x == "app"この関数は Qt 6.8 で導入されました。
sliced()、first()、last()、chopped()、chop()、およびtruncate()も参照してください 。
[since 6.8] QString &QString::slice(qsizetype pos)
この文字列を、位置pos から末尾まで変更し、この文字列への参照を返します。
注: pos < 0 またはpos >size() の場合、動作は 未定義です。
これはオーバーロードされた関数です。
この関数は Qt 6.8 で導入されました。
関連項目: sliced()、first()、last()、chopped()、chop()、およびtruncate()。
[since 6.0] QString QString::sliced(qsizetype pos, qsizetype n) &&
[since 6.0] QString QString::sliced(qsizetype pos, qsizetype n) const &
この文字列の、位置pos から始まり、インデックス位置にある要素(その要素自体は含まない)までのn 文字を含む文字列を返します。 pos + nまでの部分(ただし、その要素自体は含まない)をxml-ph-0000@deepl.internal文字分含む文字列を返します。
注: pos < 0、n < 0、またはpos +n >size() の場合、動作は 未定義となります。
QString x = "Nine pineapples";
QString y = x.sliced(5, 4); // y == "pine"
QString z = x.sliced(5); // z == "pineapples"これらの関数は Qt 6.0 で導入されました。
first()、last()、chopped()、chop()、truncate()、およびslice()も参照してください 。
[since 6.0] QString QString::sliced(qsizetype pos) &&
[since 6.0] QString QString::sliced(qsizetype pos) const &
この文字列の、位置pos から末尾までの部分を含む文字列を返します。
注: pos < 0 またはpos >size() の場合、動作は 未定義です。
これらの関数は Qt 6.0 で導入されました。
関連項目: first()、last()、chopped()、chop()、truncate()、およびslice()。
QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
文字列内の「sep 」という部分文字列が現れる箇所ごとにその文字列を分割し、それらの文字列のリストを返します。もし「sep 」が文字列内のどこにも一致しない場合、split() はこの文字列を含む要素が1つのリストを返します。
cs sep のマッチングを大文字小文字を区別するか、区別しないかを指定します。
behavior がQt::SkipEmptyParts の場合、空のエントリは結果に含まれません。デフォルトでは、空のエントリは保持されます。
例:
QString str = QStringLiteral("a,,b,c");
QStringList list1 = str.split(u',');
// list1: [ "a", "", "b", "c" ]
QStringList list2 = str.split(u',', Qt::SkipEmptyParts);
// list2: [ "a", "b", "c" ]sep が空の場合、split()は空の文字列、その後に文字列の各文字、さらに別の空の文字列の順で返します:
この動作を理解するには、空文字列はあらゆる位置に一致することを思い出してください。したがって、上記は本質的に以下と同じです:
QString str = "/a/b/c/";
auto parts = str.split(u'/');
// parts: {"", "a", "b", "c", ""}「 QStringList::join()」および「section()」も参照してください 。
QStringList QString::split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
正規表現 `re ` に一致する箇所ごとに文字列を部分文字列に分割し、それらの文字列のリストを返します。re が文字列内のどこにも一致しない場合、`split()` はこの文字列を含む要素が 1 つのリストを返します。
以下は、1つ以上の空白文字を区切り文字として使用して、文中の単語を抽出する例です:
QString str;
QStringList list;
str = "Some text\n\twith strange whitespace.";
list = str.split(QRegularExpression("\\s+"));
// list: [ "Some", "text", "with", "strange", "whitespace." ]以下は同様の例ですが、今回は単語以外の任意の文字列を区切り文字として使用しています:
str = "This time, a normal English sentence.";
list = str.split(QRegularExpression("\\W+"), Qt::SkipEmptyParts);
// list: [ "This", "time", "a", "normal", "English", "sentence" ]3つ目の例として、長さ0のアサーション \b (単語境界)を使用して、文字列を単語と非単語のトークンが交互に並ぶシーケンスに分割する例です:
str = "Now: this sentence fragment.";
list = str.split(QRegularExpression("\\b"));
// list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ]これはオーバーロードされた関数です。
QStringList::join() およびsection()も参照してください 。
QStringList QString::split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
これはオーバーロードされた関数です。
void QString::squeeze()
文字データの保存に不要なメモリを解放します。
この関数の唯一の目的は、QString のメモリ使用量を微調整する手段を提供することです。通常、この関数を呼び出す必要はほとんどありません。
reserve() およびcapacity()も参照してください 。
bool QString::startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
文字列が「s 」で始まる場合は `true ` を返し、そうでない場合は `false` を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
QString str = "Bananas";
str.startsWith("Ban"); // returns true
str.startsWith("Car"); // returns falseendsWith()も参照してください 。
bool QString::startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
文字列が「c 」で始まる場合は `true ` を返し、そうでない場合は `false` を返します。
この関数は、QString::startsWith() をオーバーロードしています。
bool QString::startsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この関数は、QString::startsWith() をオーバーロードしています。
[noexcept] bool QString::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
文字列の先頭が文字列ビュー `str` で始まる場合は `true ` を返し、そうでない場合は `false` を返します。
cs がQt::CaseSensitive (デフォルト) の場合、検索は大文字と小文字を区別します。それ以外の場合は、大文字と小文字を区別しません。
これはオーバーロードされた関数です。
endsWith()も参照してください 。
[noexcept] void QString::swap(QString &other)
この文字列とother を置き換えます。この操作は非常に高速で、失敗することはありません。
CFStringRef QString::toCFString() const
QString から CFString を作成します。
呼び出し元が CFString を所有し、その解放の責任を負います。
注:この関数は 、macOS および iOS でのみ利用可能です。
QString QString::toCaseFolded() const
文字列の大文字小文字を統一した文字列を返します。ほとんどのUnicode文字については、これはtoLower() と同じ結果になります。
double QString::toDouble(bool *ok = nullptr) const
double 値に変換された文字列を返します。
変換時にオーバーフローが発生した場合は無限大を、その他の理由(アンダーフローなど)で変換に失敗した場合は0.0を返します。
ok がnullptr でない場合、失敗は*ok をfalse に設定することで、成功は*ok をtrue に設定することで報告されます。
QString str = "1234.56";
double val = str.toDouble(); // val == 1234.56警告: ` QString ` の内容には 、プラス/マイナス記号、科学記法で使用される文字「e」、および小数点を含む、有効な数値文字のみを含めることができます。単位やその他の文字を含めると、変換エラーが発生します。
bool ok;
double d;
d = QString( "1234.56e-02" ).toDouble(&ok); // ok == true, d == 12.3456
d = QString( "1234.56e-02 Volt" ).toDouble(&ok); // ok == false, d == 0文字列の変換は常に「C」ロケールで行われます。ロケール依存の変換を行う場合は、QLocale::toDouble() を使用してください。
d = QString( "1234,56" ).toDouble(&ok); // ok == false
d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56歴史的な理由により、この関数は千の位区切り記号を処理しません。そのような数値を変換する必要がある場合は、QLocale::toDouble() を使用してください。
d = QString( "1,234,567.89" ).toDouble(&ok); // ok == false
d = QString( "1234567.89" ).toDouble(&ok); // ok == trueこの関数は、先頭および末尾の空白を無視します。
number()、QLocale::setDefault()、QLocale::toDouble()、およびtrimmed()も参照してください 。
[since 6.6] emscripten::val QString::toEcmaString() const
このオブジェクトをECMAScriptの文字列に変換します。
この関数は Qt 6.6 で導入されました。
fromEcmaString()も参照してください 。
float QString::toFloat(bool *ok = nullptr) const
float 値に変換された文字列を返します。
変換時にオーバーフローが発生した場合は無限大を、その他の理由(アンダーフローなど)で変換に失敗した場合は0.0を返します。
ok がnullptr でない場合、失敗は*ok をfalse に設定することで報告され、成功は*ok をtrue に設定することで報告されます。
警告: ` QString ` の内容には 、プラス/マイナス記号、科学記法で使用される文字「e」、および小数点を含む、有効な数値文字のみを含めることができます。単位やその他の文字を含めると、変換エラーが発生します。
文字列の変換は常に「C」ロケールで行われます。ロケール依存の変換を行うには、QLocale::toFloat() を使用してください。
歴史的な理由により、この関数は千の位区切り記号を処理しません。そのような数値を変換する必要がある場合は、QLocale::toFloat() を使用してください。
例:
QString str1 = "1234.56";
str1.toFloat(); // returns 1234.56
bool ok;
QString str2 = "R2D2";
str2.toFloat(&ok); // returns 0.0, sets ok to false
QString str3 = "1234.56 Volt";
str3.toFloat(&ok); // returns 0.0, sets ok to falseこの関数は、先頭および末尾の空白を無視します。
関連項目: number(),toDouble(),toInt(),QLocale::toFloat(), およびtrimmed()。
QString QString::toHtmlEscaped() const
プレーンテキストの文字列を、HTMLメタ文字< 、> 、& 、および" がHTMLエンティティに置き換えられたHTML文字列に変換します。
例:
QString plain = "#include <QtCore>";
QString html = plain.toHtmlEscaped();
// html == "#include <QtCore>"int QString::toInt(bool *ok = nullptr, int base = 10) const
指定された基数(base )を用いて、文字列をint に変換した結果を返します。基数のデフォルト値は10で、2から36までの値、または0でなければなりません。変換に失敗した場合は0を返します。
ok がnullptr でない場合、*ok をfalse に設定して失敗を報告し、*ok をtrue に設定して成功を報告します。
base が0の場合、C言語の規約が採用されます。つまり、文字列が「0x」で始まる場合は16進数が使用され、そうでない場合は、文字列が「0b」で始まる場合は2進数が、それ以外の場合は「0」で始まる場合は8進数が使用されます。 それ以外の場合は10進数が使用されます。
文字列の変換は常に 'C' ロケールで行われます。ロケール依存の変換を行うには、QLocale::toInt() を使用してください。
例:
QString str = "FF";
bool ok;
int hex = str.toInt(&ok, 16); // hex == 255, ok == true
int dec = str.toInt(&ok, 10); // dec == 0, ok == falseこの関数は、先頭および末尾の空白を無視します。
注: 「0b」という接頭辞のサポートは Qt 6.4 で追加されました。
関連項目: number()、toUInt()、toDouble()、およびQLocale::toInt()。
QByteArray QString::toLatin1() const
文字列のLatin-1形式の表現をQByteArray として返します。
文字列にLatin-1以外の文字が含まれている場合、返されるバイト配列は未定義となります。それらの文字は省略されるか、疑問符に置き換えられる場合があります。
fromLatin1()、toUtf8()、toLocal8Bit()、およびQStringEncoderも参照してください 。
QByteArray QString::toLocal8Bit() const
文字列のローカルな 8 ビット表現を、QByteArray として返します。
Unix システムでは、これは `toUtf8()` と同等です。なお、Apple システムでは、この関数は`NSString.defaultCStringEncoding` や`CFStringGetSystemEncoding()` を考慮しません。これら関数は通常、レガシーな「Western (Mac OS Roman)」エンコーディングを返すためですが、このエンコーディングは最新の Apple オペレーティングシステムでは使用すべきではないからです。 Windows では、システムの現在のコードページが使用されます。
この文字列に、ローカルの 8 ビットエンコーディングでエンコードできない文字が含まれている場合、返されるバイト配列は未定義となります。それらの文字は、省略されるか、別の文字に置き換えられる場合があります。
fromLocal8Bit()、toLatin1()、toUtf8()、およびQStringEncoderも参照してください 。
long QString::toLong(bool *ok = nullptr, int base = 10) const
文字列を、基数base を使用してlong に変換した結果を返します。 のデフォルト値は 10 で、2 から 36 までの値、または 0 でなければなりません。変換に失敗した場合は 0 を返します。
ok がnullptr でない場合、失敗時は *ok をfalse に、成功時は *ok をtrue に設定することで、結果が通知されます。
base が0の場合、C言語の規約が使用されます。つまり、文字列が「0x」で始まる場合は16進数、そうでない場合で文字列が「0b」で始まる場合は2進数、それ以外で文字列が「0」で始まる場合は8進数が使用されます。 それ以外の場合は10進法が使用されます。
文字列の変換は常に 'C' ロケールで行われます。ロケール依存の変換を行うには、QLocale::toLongLong() を使用してください。
例:
QString str = "FF";
bool ok;
long hex = str.toLong(&ok, 16); // hex == 255, ok == true
long dec = str.toLong(&ok, 10); // dec == 0, ok == falseこの関数は、先頭および末尾の空白を無視します。
注: 「0b」という接頭辞のサポートは Qt 6.4 で追加されました。
関連項目: number()、toULong()、toInt()、およびQLocale::toInt()。
qlonglong QString::toLongLong(bool *ok = nullptr, int base = 10) const
文字列を、基数base (デフォルトは10。2~36の範囲、または0でなければならない)を使用してlong long に変換した結果を返します。変換に失敗した場合は0を返します。
ok がnullptr でない場合、失敗時は*ok をfalse に設定して失敗を報告し、成功時は*ok をtrue に設定して成功を報告します。
base が0の場合、C言語の規約が使用されます。つまり、文字列が「0x」で始まる場合は16進数、そうでない場合で文字列が「0b」で始まる場合は2進数、それ以外で文字列が「0」で始まる場合は8進数が使用されます。 それ以外の場合は、基数10が使用されます。
文字列の変換は常に 'C' ロケールで行われます。ロケール依存の変換を行うには、QLocale::toLongLong() を使用してください。
例:
QString str = "FF";
bool ok;
qint64 hex = str.toLongLong(&ok, 16); // hex == 255, ok == true
qint64 dec = str.toLongLong(&ok, 10); // dec == 0, ok == falseこの関数は、先頭および末尾の空白を無視します。
注: 「0b」という接頭辞のサポートは Qt 6.4 で追加されました。
関連項目: number()、toULongLong()、toInt()、およびQLocale::toLongLong()。
QString QString::toLower() const
文字列の小文字版を返します。
QString str = "The Qt PROJECT";
str = str.toLower(); // str == "the qt project"大文字小文字の変換は常に「C」ロケールで行われます。ロケールに依存した大文字小文字の変換を行うには、QLocale::toLower() を使用してください。
toUpper() およびQLocale::toLower()も参照してください 。
NSString *QString::toNSString() const
QString からNSStringを作成します。
この NSString はオートリリースされます。
注:この関数は macOS および iOS でのみ利用可能です。
short QString::toShort(bool *ok = nullptr, int base = 10) const
文字列を、基数base (デフォルトは10。2から36の範囲、または0でなければならない)を用いてshort に変換した結果を返します。変換に失敗した場合は0を返します。
ok がnullptr でない場合、*ok をfalse に設定して失敗を報告し、*ok をtrue に設定して成功を報告します。
base が0の場合、C言語の規約が使用されます。つまり、文字列が「0x」で始まる場合は16進数、そうでない場合で文字列が「0b」で始まる場合は2進数、それ以外で文字列が「0」で始まる場合は8進数が使用されます。 それ以外の場合は、10進数が使用されます。
文字列の変換は常に 'C' ロケールで行われます。ロケール依存の変換を行うには、QLocale::toShort() を使用してください。
例:
QString str = "FF";
bool ok;
short hex = str.toShort(&ok, 16); // hex == 255, ok == true
short dec = str.toShort(&ok, 10); // dec == 0, ok == falseこの関数は、先頭および末尾の空白を無視します。
注: 「0b」という接頭辞のサポートは Qt 6.4 で追加されました。
関連項目: number()、toUShort()、toInt()、およびQLocale::toShort()。
std::string QString::toStdString() const
このQString に含まれるデータを格納したstd::stringオブジェクトを返します。Unicodeデータは、toUtf8()関数を使用して8ビット文字に変換されます。
このメソッドは、主に `QString ` を、`std::string` オブジェクトを受け取る関数に渡す際に役立ちます。
toLatin1()、toUtf8()、toLocal8Bit()、およびQByteArray::toStdString()も参照してください 。
std::u16string QString::toStdU16String() const
このQString に含まれるデータを格納したstd::u16stringオブジェクトを返します。Unicodeデータは、utf16()メソッドによって返されるものと同じです。
utf16()、toStdWString()、およびtoStdU32String()も参照してください 。
std::u32string QString::toStdU32String() const
このQString に含まれるデータを格納したstd::u32stringオブジェクトを返します。このUnicodeデータは、toUcs4()メソッドによって返されるものと同じです。
toUcs4()、toStdWString()、およびtoStdU16String()も参照してください 。
std::wstring QString::toStdWString() const
この `QString` に含まれるデータを持つ `std::wstring` オブジェクトを返します。 この std::wstring は、wchar_t の幅が 2 バイトのプラットフォーム(Windows など)では UTF-16 で、wchar_t の幅が 4 バイトのプラットフォーム(ほとんどの Unix システム)では UTF-32 でエンコードされます。
このメソッドは、主に `QString ` を、`std::wstring` オブジェクトを受け入れる関数に渡す際に役立ちます。
utf16()、toLatin1()、toUtf8()、toLocal8Bit()、toStdU16String()、およびtoStdU32String()も参照してください 。
uint QString::toUInt(bool *ok = nullptr, int base = 10) const
文字列を、基数base を使用してunsigned int に変換した結果を返します。 のデフォルト値は 10 であり、2 から 36 の間の値、または 0 でなければなりません。変換に失敗した場合は 0 を返します。
ok がnullptr でない場合、失敗時は*ok をfalse に設定して、成功時は*ok をtrue に設定することで、結果が報告されます。
base が0の場合、C言語の規約が使用されます。つまり、文字列が「0x」で始まる場合は16進数、そうでない場合で文字列が「0b」で始まる場合は2進数、それ以外で文字列が「0」で始まる場合は8進数が使用されます。 それ以外の場合は10進数が使用されます。
文字列の変換は常に 'C' ロケールで行われます。ロケール依存の変換を行うには、QLocale::toUInt() を使用してください。
例:
QString str = "FF";
bool ok;
uint hex = str.toUInt(&ok, 16); // hex == 255, ok == true
uint dec = str.toUInt(&ok, 10); // dec == 0, ok == falseこの関数は、先頭および末尾の空白を無視します。
注: 「0b」という接頭辞のサポートは Qt 6.4 で追加されました。
関連項目: number()、toInt()、およびQLocale::toUInt()。
ulong QString::toULong(bool *ok = nullptr, int base = 10) const
文字列を、基数base を使用してunsigned long に変換した結果を返します。 のデフォルト値は 10 ですが、2 から 36 の範囲内の値、または 0 でなければなりません。変換に失敗した場合は 0 を返します。
ok がnullptr でない場合、*ok をfalse に設定して失敗を報告し、*ok をtrue に設定して成功を報告します。
base が0の場合、C言語の規約が使用されます。つまり、文字列が「0x」で始まる場合は16進数、そうでない場合で文字列が「0b」で始まる場合は2進数、それ以外で文字列が「0」で始まる場合は8進数が使用されます。 それ以外の場合は10進法が使用されます。
文字列の変換は常に「C」ロケールで行われます。ロケール依存の変換を行うには、QLocale::toULongLong() を使用してください。
例:
QString str = "FF";
bool ok;
ulong hex = str.toULong(&ok, 16); // hex == 255, ok == true
ulong dec = str.toULong(&ok, 10); // dec == 0, ok == falseこの関数は、先頭および末尾の空白を無視します。
注: 「0b」という接頭辞のサポートは Qt 6.4 で追加されました。
number() およびQLocale::toUInt()も参照してください 。
qulonglong QString::toULongLong(bool *ok = nullptr, int base = 10) const
文字列を、基数base (デフォルトは10。2~36の範囲、または0でなければならない)を用いてunsigned long long に変換した結果を返します。変換に失敗した場合は0を返します。
ok がnullptr でない場合、失敗時は*ok をfalse に、成功時は*ok をtrue に設定することで、結果が報告されます。
base が0の場合、C言語の規約が使用されます。つまり、文字列が「0x」で始まる場合は16進数が使用され、そうでない場合は文字列が「0b」で始まる場合は2進数が、それ以外の場合は文字列が「0」で始まる場合は8進数が使用されます。 それ以外の場合は10進数が使用されます。
文字列の変換は常に「C」ロケールで行われます。ロケール依存の変換を行う場合は、QLocale::toULongLong() を使用してください。
例:
QString str = "FF";
bool ok;
quint64 hex = str.toULongLong(&ok, 16); // hex == 255, ok == true
quint64 dec = str.toULongLong(&ok, 10); // dec == 0, ok == falseこの関数は、先頭および末尾の空白を無視します。
注: 「0b」接頭辞のサポートは Qt 6.4 で追加されました。
関連項目: number()、toLongLong()、およびQLocale::toULongLong()。
ushort QString::toUShort(bool *ok = nullptr, int base = 10) const
文字列を、基数base を使用してunsigned short に変換した結果を返します。 のデフォルト値は 10 で、2 から 36 までの整数、または 0 でなければなりません。変換に失敗した場合は 0 を返します。
ok がnullptr でない場合、*ok をfalse に設定することで失敗を報告し、*ok をtrue に設定することで成功を報告します。
base が0の場合、C言語の規則が適用されます。つまり、文字列が「0x」で始まる場合は16進数、そうでない場合で文字列が「0b」で始まる場合は2進数、それ以外で文字列が「0」で始まる場合は8進数が使用されます。 それ以外の場合は10進数が使用されます。
文字列の変換は常に 'C' ロケールで行われます。ロケール依存の変換を行うには、QLocale::toUShort() を使用してください。
例:
QString str = "FF";
bool ok;
ushort hex = str.toUShort(&ok, 16); // hex == 255, ok == true
ushort dec = str.toUShort(&ok, 10); // dec == 0, ok == falseこの関数は、先頭および末尾の空白を無視します。
注: 「0b」接頭辞のサポートは Qt 6.4 で追加されました。
関連項目: number()、toShort()、およびQLocale::toUShort()。
QList<uint> QString::toUcs4() const
文字列のUCS-4/UTF-32表現を、QList<uint>として返します。
UTF-32はUnicodeの符号化方式であるため、非可逆です。この文字列に含まれるすべての文字はUTF-32で符号化されます。この文字列内の無効なコード単位のシーケンスは、Unicode置換文字(QChar::ReplacementCharacter 、U+FFFD に相当)に置き換えられます。
返されるリストは 0 で終了しません。
fromUtf8()、toUtf8()、toLatin1()、toLocal8Bit()、QStringEncoder 、fromUcs4()、およびtoWCharArray()も参照してください 。
QString QString::toUpper() const
文字列を大文字に変換したものを返します。
QString str = "TeXt";
str = str.toUpper(); // str == "TEXT"大文字小文字の変換は常に「C」ロケールで行われます。ロケールに依存した大文字小文字の変換を行うには、QLocale::toUpper() を使用してください。
注: 場合によっては、 文字列の大文字形式が元の文字列よりも長くなることがあります。
注:2024年以降 、ドイツ語では、ß (U+00DF LATIN SMALL LETTER SHARP S) を ẞ (U+1E9E LATIN CAPITAL LETTER SHARP S) として大文字表記することが公式に推奨されています。 Qt の実装は Unicode に準拠しており、Unicode では依然として「SS」の使用が義務付けられています。新しいドイツ語の規則を実装する必要がある場合は、この関数を呼び出す前に、手動でreplace(u'ß', u'ẞ') を実行する必要があります。
toLower() およびQLocale::toLower()も参照してください 。
QByteArray QString::toUtf8() const
文字列のUTF-8表現をQByteArray として返します。
UTF-8はUnicodeのコーデックであり、QString のようなUnicode文字列に含まれるすべての文字を表現することができます。
fromUtf8()、toLatin1()、toLocal8Bit()、およびQStringEncoderも参照してください 。
qsizetype QString::toWCharArray(wchar_t *array) const
この `QString ` オブジェクトに含まれるデータを、`array ` に格納します。この配列は、`wchar_t` の幅が 2 バイトのプラットフォーム(例:Windows)では UTF-16 で、`wchar_t` の幅が 4 バイトのプラットフォーム(ほとんどの Unix システム)では UTF-32 でエンコードされます。
array xml-ph-0000@deepl.internalは呼び出し元によって割り当てられ、文字列全体を格納するのに十分な容量を持つ必要があります(文字列と同じ長さの配列を割り当てることで常に十分です)。
この関数は、文字列の実際の長さをarray で返します。
注:この関数は 、配列の末尾にヌル文字を追加しません。
関連項目: utf16()、toUcs4()、toLatin1()、toUtf8()、toLocal8Bit()、toStdWString()、およびQStringView::toWCharArray()。
[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) &&
[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) const &&
[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) const &
sep が出現する箇所ごとに文字列を部分文字列ビューに分割し、それらの文字列からなる遅延シーケンスを返します。
以下と同等ですが
return QStringTokenizer{std::forward<Needle>(sep), flags...};に相当しますが、コンパイラでC++17のクラステンプレート引数推論(CTAD)が有効になっていなくても動作します。
結果を形成するために `sep ` と `flags ` がどのように連携するかは、QStringTokenizer を参照してください。
注: この関数はQStringTokenizerを返しますが 、そのテンプレート引数を明示的に指定してはいけません。C++17 のクラステンプレート引数推論 (CTAD) を使用できる場合は、
QStringTokenizer result = sv.tokenize(sep);(テンプレート引数なし)と記述できます。C++17のCTADを使用できない場合は、戻り値をauto 型の変数にのみ格納する必要があります:
auto result = sv.tokenize(sep);これは、QStringTokenizer のテンプレート引数が、返される特定のtokenize()オーバーロードに対して非常に微妙な依存関係を持っており、通常、区切り文字に使用される型とは一致しないためです。
これらの関数は Qt 6.0 で導入されました。
注: ( 1) は、noexcept(qTokenize(std::declval<QString>(), std::forward<Needle>(needle), flags...)) がtrue の場合、noexcept です。
注: noexcept(qTokenize(std::declval<const QString>(), std::forward<Needle>(needle), flags...)) がtrue の場合、( 2) は noexcept です。
注: ( 3) は、noexcept(qTokenize(std::declval<const QString &>(), std::forward<Needle>(needle), flags...)) がtrue の場合、noexcept です。
「 QStringTokenizer 」および「qTokenize()」も参照してください 。
QString QString::trimmed() const
先頭と末尾の空白文字が削除された文字列を返します。
空白とは、QChar::isSpace() がtrue を返す任意の文字を指します。これには、ASCII 文字の '\t'、'\n'、'\v'、'\f'、'\r'、および ' ' が含まれます。
例:
QString str = " lots\t of\nwhitespace\r\n ";
str = str.trimmed();
// str == "lots\t of\nwhitespace"simplified() とは異なり、trimmed() は内部の空白文字をそのまま残します。
simplified()も参照してください 。
void QString::truncate(qsizetype position)
インデックスposition の要素(これを含む)から始まる文字列を切り取ります。
指定されたposition のインデックスが文字列の末尾を超えている場合、何も起こりません。
例:
QString str = "Vladivostok";
str.truncate(4);
// str == "Vlad"position が負の値の場合、0を指定した場合と同じになります。
関連項目: chop()、resize()、first()、およびQStringView::truncate()。
const QChar *QString::unicode() const
文字列のUnicode表現を返します。結果は、文字列が変更されるまで有効です。
注: 返される文字列は 、'\0'で終了していない場合があります。配列の長さを確認するには、size() を使用してください。
関連項目: setUnicode()、utf16()、およびfromRawData()。
[static] QString QString::vasprintf(const char *cformat, va_list ap)
asprintf() と同等のメソッドですが、可変引数のリストの代わりに va_listap を受け取ります。cformat に関する説明については、asprintf() のドキュメントを参照してください。
このメソッドは va_end マクロを呼び出しません。ap に対して va_end を呼び出すのは呼び出し側の責任となります。
asprintf()も参照してください 。
[noexcept, since 6.7] QString::operator std::u16string_view() const
この `QString ` オブジェクトを `std::u16string_view ` オブジェクトに変換します。
この関数はQt 6.7で導入されました。
QString &QString::operator+=(const QString &other)
この文字列の末尾に「other 」という文字列を追加し、この文字列への参照を返します。
例:
QString は、文字列データの末尾に余分な領域を事前に確保しているため、毎回文字列全体を再割り当てすることなく拡張が可能であり、この操作は通常非常に高速(定数時間)です。
append() およびprepend()も参照してください 。
QString &QString::operator+=(QChar ch)
文字列の末尾に「ch 」を追加します。
この関数は、QString::operator+=() をオーバーロードしています。
QString &QString::operator+=(QLatin1StringView str)
str で取得された Latin-1 文字列を、この文字列に追加します。
この関数は、QString::operator+=() をオーバーロードしています。
[since 6.0] QString &QString::operator+=(QStringView str)
文字列ビュー `str ` をこの文字列に追加します。
この関数は、QString::operator+=() をオーバーロードしています。
この関数は Qt 6.0 で導入されました。
[since 6.5] QString &QString::operator+=(QUtf8StringView str)
UTF-8 文字列ビュー `str ` をこの文字列に追加します。
この関数は、QString::operator+=() をオーバーロードします。
この関数は Qt 6.5 で導入されました。
QString &QString::operator+=(const QByteArray &ba)
バイト配列 `ba ` をこの文字列に追加します。バイト配列は、fromUtf8() 関数を使用して Unicode に変換されます。バイト配列 `ba ` に NUL 文字('\0')が埋め込まれている場合、それらは変換の対象となります。
アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この機能を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列をQObject::tr()を通じて処理させたい場合などに役立ちます。
この関数は、QString::operator+=() をオーバーロードします。
QString &QString::operator+=(const char *str)
この文字列に「str 」という文字列を追加します。const char 型のポインタは、fromUtf8() 関数を使用して Unicode に変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この関数を無効にすることができます。たとえば、ユーザーに表示されるすべての文字列を `QObject::tr()` 経由で処理させたい場合などに、この方法が役立ちます。
この関数は、QString::operator+=() をオーバーロードしています。
[noexcept] QString &QString::operator=(QString &&other)
other をこのQString インスタンスに割り当てます。
[noexcept] QString &QString::operator=(const QString &other)
この文字列に `other ` を割り当て、この文字列への参照を返します。
QString &QString::operator=(QChar ch)
文字列に単一の文字「ch 」を含めるように設定します。
この関数は、QString::operator=() をオーバーロードしています。
QString &QString::operator=(QLatin1StringView str)
str によって認識された Latin-1 文字列を、この文字列に割り当てます。
この関数は、QString::operator=() をオーバーロードします。
QString &QString::operator=(const QByteArray &ba)
この文字列にba を割り当てます。バイト配列は、fromUtf8()関数を使用してUnicodeに変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。これは、たとえば、ユーザーに表示されるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
この関数は、QString::operator=() をオーバーロードしています。
QString &QString::operator=(const char *str)
この文字列にstr を割り当てます。const charポインタは、fromUtf8()関数を使用してUnicodeに変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` または `QT_RESTRICTED_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。これは、たとえば、ユーザーに表示されるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
この関数は、QString::operator=() をオーバーロードしています。
QChar &QString::operator[](qsizetype position)
文字列内の指定されたposition にある文字を、変更可能な参照として返します。
例:
関連項目: ` at()`。
const QChar QString::operator[](qsizetype position) const
この関数は、QString::operator[]() をオーバーロードしています。
関連する非メンバー関数
[since 6.1] template <typename T> qsizetype erase(QString &s, const T &t)
文字列 `s` から、t と等しいすべての要素を削除します。削除された要素がある場合は、その数を返します。
この関数は Qt 6.1 で導入されました。
「erase_if」も参照してください 。
[since 6.1] template <typename Predicate> qsizetype erase_if(QString &s, Predicate pred)
文字列 `s` から、述語 `pred ` が真を返すすべての要素を削除します。削除された要素がある場合は、その数を返します。
この関数は Qt 6.1 で導入されました。
「erase」も参照してください 。
[noexcept] bool operator!=(const QByteArray &lhs, const QString &rhs)
バイト配列 `lhs ` が `rhs` の UTF-8 エンコーディングと一致しない場合、true を返します。一致する場合は、false を返します。
この比較では大文字と小文字が区別されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。その場合、比較を行う前にバイト配列を `QString ` に変換したいときは、明示的に `QString::fromUtf8()`、`QString::fromLatin1()`、または `QString::fromLocal8Bit()` を呼び出す必要があります。
[noexcept] bool operator!=(const QString &lhs, const QString &rhs)
文字列 `lhs ` が文字列 `rhs` と等しくない場合、true を返します。それ以外の場合は、false を返します。
Comparing Stringsも参照してください 。
[noexcept] bool operator!=(const char *const &lhs, const QString &rhs)
lhs がrhs と等しくない場合、true を返します。それ以外の場合は、false を返します。
lhs!= 0 の場合、これはcompare( lhs 、rhs ) != 0 と同等である。なお、lhs が 0 である文字列は存在しないことに注意。
[noexcept] bool operator!=(const QString &lhs, const QByteArray &rhs)
rhs のバイト配列は、QUtf8StringView に変換されます。バイト配列にNUL文字('\0')が埋め込まれている場合、それらは変換の対象に含まれます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にできます。これは、たとえば、ユーザーに表示されるすべての文字列を `QObject::tr()` を通じて処理したい場合などに役立ちます。
この関数は、QString::operator!=() をオーバーロードしています。
[noexcept] bool operator!=(const QString &lhs, const QLatin1StringView &rhs)
文字列 `lhs ` が文字列 `rhs` と等しくない場合、true を返します。それ以外の場合は、false を返します。
この関数は、QString::operator!=() をオーバーロードします。
[noexcept] bool operator!=(const QString &lhs, const char *const &rhs)
rhs 型のconst charポインタは、QUtf8StringView 型に変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
この関数は、QString::operator!=() をオーバーロードしています。
[noexcept, since 6.4] QString operator""_s(const char16_t *str, size_t size)
char16_t型の文字列リテラルstr の先頭size 文字からQString を作成するリテラル演算子。
QString はコンパイル時に生成され、生成された文字列データはコンパイル済みオブジェクトファイルの読み取り専用セグメントに格納されます。重複するリテラルは、同じ読み取り専用メモリを共有する場合があります。この機能はQStringLiteral と互換性がありますが、コード内に多くの文字列リテラルが存在する場合、入力の手間を省くことができます。
以下のコードは、QString を作成します:
using namespace Qt::StringLiterals;
auto str = u"hello"_s;この関数は Qt 6.4 で導入されました。
Qt::Literals::StringLiteralsも参照してください 。
QString operator+(QString &&s1, const QString &s2)
QString operator+(const QString &s1, const QString &s2)
s1 とs2 を連結した結果となる文字列を返します。
[since 6.9] QString operator+(QStringView lhs, const QString &rhs)
[since 6.9] QString operator+(const QString &lhs, QStringView rhs)
lhs とrhs を連結した結果となる文字列を返します。
これらの関数は Qt 6.9 で導入されました。
QString operator+(const QString &s1, const char *s2)
s1 とs2 を連結した結果を文字列として返します(s2 はQString::fromUtf8() 関数を使用して Unicode に変換されます)。
QString::fromUtf8()も参照してください 。
QString operator+(const char *s1, const QString &s2)
s1 とs2 を連結した結果となる文字列を返します(s1 はQString::fromUtf8() 関数を使用して Unicode に変換されます)。
QString::fromUtf8()も参照してください 。
[noexcept] bool operator<(const QByteArray &lhs, const QString &rhs)
バイト配列 `lhs ` が `rhs` の UTF-8 エンコーディングよりも辞書順で小さい場合、true を返します。そうでない場合は、false を返します。
この比較では大文字と小文字が区別されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にできます。その場合、比較を行う前にバイト配列を `QString ` に変換したいときは、QString::fromUtf8()、QString::fromLatin1()、またはQString::fromLocal8Bit() を明示的に呼び出す必要があります。
[noexcept] bool operator<(const char *const &lhs, const QString &rhs)
lhs がrhs より字句的に小さい場合、true を返す。そうでない場合は、false を返す。lhs ≠0の場合、これはcompare(lhs, rhs) < 0 と等価である。
Comparing Stringsも参照のこと 。
[noexcept] bool operator<(const QLatin1StringView &lhs, const QString &rhs)
lhs がrhs よりもレキシカルに小さい場合はtrue を返し、そうでない場合はfalse を返します。
この関数は、QString::operator<() をオーバーロードするものです。
[noexcept] bool operator<(const QString &lhs, const QByteArray &rhs)
rhs のバイト配列は、QUtf8StringView に変換されます。バイト配列にNUL文字('\0')が埋め込まれている場合、それらは変換の対象となります。
アプリケーションのコンパイル時に、この演算子 `QT_NO_CAST_FROM_ASCII ` を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列を `QObject::tr()` を通じて処理させたい場合などに役立ちます。
この関数は、QString::operator<() をオーバーロードしています。
[noexcept] bool operator<(const QString &lhs, const QLatin1StringView &rhs)
lhs がrhs よりもレキシカルに小さい場合、true を返します。それ以外の場合は、false を返します。
この関数は、QString::operator<() をオーバーロードしています。
[noexcept] bool operator<(const QString &lhs, const QString &rhs)
文字列 `lhs ` が文字列 `rhs` より字句的に小さい場合、true を返します。それ以外の場合は、false を返します。
この関数は `QString::operator<()` をオーバーロードしています。
Comparing Stringsも参照してください 。
[noexcept] bool operator<(const QString &lhs, const char *const &rhs)
文字列 `lhs ` が文字列 `rhs` よりも字句的に小さい場合、`true ` を返します。それ以外の場合は `false` を返します。
rhs の const char ポインタは、QUtf8StringView に変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。これは、例えば、ユーザーに見えるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
この関数は、QString::operator<() をオーバーロードしています。
QDataStream &operator<<(QDataStream &stream, const QString &string)
指定されたstring を、指定されたstream に書き込みます。
「Qt データ型のシリアライズ」も参照してください 。
[noexcept] bool operator<=(const QByteArray &lhs, const QString &rhs)
バイト配列 `lhs ` が `rhs` の UTF-8 エンコーディングよりも辞書順で小さいか等しい場合、true を返します。それ以外の場合はfalse を返します。
この比較では大文字と小文字が区別されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。その場合、比較を行う前にバイト配列を `QString ` に変換したいときは、`QString::fromUtf8()`、`QString::fromLatin1()`、または `QString::fromLocal8Bit()` を明示的に呼び出す必要があります。
[noexcept] bool operator<=(const QString &lhs, const QString &rhs)
文字列 `lhs ` が文字列 `rhs` より辞書順で小さいか等しい場合、true を返します。そうでない場合は、false を返します。
Comparing Stringsも参照してください 。
[noexcept] bool operator<=(const char *const &lhs, const QString &rhs)
lhs がrhs より辞書順で小さいか等しい場合、true を返す。それ以外の場合はfalse を返す。lhs!= 0の場合、これはcompare(lhs, rhs) <= 0 と同等である。
Comparing Stringsも参照のこと 。
[noexcept] bool operator<=(const QLatin1StringView &lhs, const QString &rhs)
lhs がrhs より辞書的に小さいか等しい場合はtrue を返し、それ以外の場合はfalse を返します。
この関数は、QString::operator<=() をオーバーロードしています。
[noexcept] bool operator<=(const QString &lhs, const QByteArray &rhs)
rhs のバイト配列は、QUtf8StringView に変換されます。バイト配列にNUL文字('\0')が埋め込まれている場合、それらは変換の対象となります。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にできます。これは、たとえば、ユーザーに表示されるすべての文字列を `QObject::tr()` 経由で処理するようにしたい場合などに役立ちます。
この関数は、QString::operator<=() をオーバーロードしています。
[noexcept] bool operator<=(const QString &lhs, const QLatin1StringView &rhs)
lhs がrhs より辞書順で小さいか等しい場合は、true を返し、それ以外の場合はfalse を返します。
この関数は、QString::operator<=() をオーバーロードしています。
[noexcept] bool operator<=(const QString &lhs, const char *const &rhs)
rhs 型のconst charポインタは、QUtf8StringView 型に変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
この関数は、QString::operator<=() をオーバーロードしています。
[noexcept] bool operator==(const QByteArray &lhs, const QString &rhs)
バイト配列 `lhs ` が `rhs` の UTF-8 エンコーディングと等しい場合、true を返します。そうでない場合は、false を返します。
この比較では大文字と小文字が区別されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。その場合、比較を行う前にバイト配列を `QString ` に変換したいときは、`QString::fromUtf8()`、`QString::fromLatin1()`、または `QString::fromLocal8Bit()` を明示的に呼び出す必要があります。
[noexcept] bool operator==(const QLatin1StringView &lhs, const QString &rhs)
lhs がrhs と等しい場合はtrue を返し、そうでない場合はfalse を返します。
この関数は、QString::operator==() をオーバーロードしています。
[noexcept] bool operator==(const QString &lhs, const QByteArray &rhs)
rhs のバイト配列は、QUtf8StringView に変換されます。
アプリケーションをコンパイルする際に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にできます。これは、例えば、ユーザーに表示されるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
文字列 `lhs ` が `rhs` と字句的に等しい場合、true を返します。それ以外の場合は、false を返します。
この関数は、QString::operator==() をオーバーロードしています。
[noexcept] bool operator==(const QString &lhs, const QLatin1StringView &rhs)
lhs がrhs と等しい場合、true を返します。そうでない場合は、false を返します。
この関数は、QString::operator==() をオーバーロードしています。
[noexcept] bool operator==(const QString &lhs, const QString &rhs)
文字列 `lhs ` が文字列 `rhs` と等しい場合は `true ` を返し、そうでない場合は `false` を返します。
注:この関数は 、null 文字列を空文字列と同様に扱います。詳細については、Distinction Between Null and Empty Strings を参照してください。
この関数は、QString::operator==() をオーバーロードしています。
Comparing Stringsも参照してください 。
[noexcept] bool operator==(const QString &lhs, const char *const &rhs)
rhs 型のconst charポインタは、QUtf8StringView 型に変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
この関数は、QString::operator==() をオーバーロードしています。
[noexcept] bool operator==(const char *const &lhs, const QString &rhs)
lhs がrhs と等しい場合はtrue を返し、そうでない場合はfalse を返します。なお、lhs が 0 である文字列は存在しないことに注意してください。
lhs != 0 && compare(lhs, rhs) == 0 と同等である。
この関数は、QString::operator==() をオーバーロードしています。
[noexcept] bool operator>(const QByteArray &lhs, const QString &rhs)
バイト配列 `lhs ` が `rhs` の UTF-8 エンコーディングよりも字列的に大きい場合、true を返します。そうでない場合は、false を返します。
この比較では大文字と小文字が区別されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。その場合、比較を行う前にバイト配列を `QString ` に変換したいときは、`QString::fromUtf8()`、`QString::fromLatin1()`、または `QString::fromLocal8Bit()` を明示的に呼び出す必要があります。
[noexcept] bool operator>(const QString &lhs, const QString &rhs)
文字列 `lhs ` が文字列 `rhs` より字句的に大きい場合は `true ` を返し、そうでない場合は `false` を返します。
Comparing Stringsも参照してください 。
[noexcept] bool operator>(const char *const &lhs, const QString &rhs)
lhs がrhs より字句的に大きい場合は `true ` を返し、そうでない場合は `false` を返します。これは `compare(lhs, rhs) > 0` と同等です。
Comparing Stringsも参照のこと 。
[noexcept] bool operator>(const QLatin1StringView &lhs, const QString &rhs)
lhs がrhs より字句的に大きい場合、true を返します。それ以外の場合は、false を返します。
この関数は、QString::operator>( ) をオーバーロードしています。
[noexcept] bool operator>(const QString &lhs, const QByteArray &rhs)
rhs のバイト配列は、QUtf8StringView に変換されます。バイト配列にNUL文字('\0')が埋め込まれている場合、それらは変換の対象となります。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にできます。これは、例えば、ユーザーに表示されるすべての文字列を `QObject::tr()` を通じて処理させたい場合などに役立ちます。
この関数は、QString::operator>() をオーバーロードしています。
[noexcept] bool operator>(const QString &lhs, const QLatin1StringView &rhs)
lhs がrhs より字句的に大きい場合、true を返す。それ以外の場合は、false を返す。
この関数は、QString::operator>( ) をオーバーロードしています。
[noexcept] bool operator>(const QString &lhs, const char *const &rhs)
rhs 型のconst charポインタは、QUtf8StringView 型に変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
この関数は、QString::operator>() をオーバーロードしています。
[noexcept] bool operator>=(const QByteArray &lhs, const QString &rhs)
バイト配列 `lhs ` が `rhs` の UTF-8 エンコーディング以上である場合は `true ` を返し、そうでない場合は `false` を返します。
この比較では大文字と小文字が区別されます。
アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。その場合、比較を行う前にバイト配列をQString に変換したいときは、QString::fromUtf8()、QString::fromLatin1()、またはQString::fromLocal8Bit() を明示的に呼び出す必要があります。
[noexcept] bool operator>=(const QString &lhs, const QString &rhs)
文字列 `lhs ` が文字列 `rhs` よりも辞書順で大きい、または等しい場合は `true ` を返し、そうでない場合は `false` を返します。
Comparing Stringsも参照してください 。
[noexcept] bool operator>=(const char *const &lhs, const QString &rhs)
lhs がrhs より辞書順で大きいか等しい場合、true を返します。それ以外の場合は、false を返します。lhs!= 0の場合、これはcompare(lhs, rhs) >= 0 と同等です。
Comparing Stringsも参照のこと 。
[noexcept] bool operator>=(const QLatin1StringView &lhs, const QString &rhs)
lhs がrhs より辞書順で大きい、または等しい場合は、true を返します。それ以外の場合は、false を返します。
この関数は、QString::operator>=() をオーバーロードします。
[noexcept] bool operator>=(const QString &lhs, const QByteArray &rhs)
rhs のバイト配列は、QUtf8StringView に変換されます。バイト配列にNUL文字('\0')が埋め込まれている場合、それらは変換の対象となります。
アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列をQObject::tr()経由で処理させたい場合などに役立ちます。
この関数は、QString::operator>=() をオーバーロードしています。
[noexcept] bool operator>=(const QString &lhs, const QLatin1StringView &rhs)
lhs がrhs よりレキシカルに大きい(または等しい)場合は、true を返します。それ以外の場合は、false を返します。
この関数は、QString::operator>=() をオーバーロードしています。
[noexcept] bool operator>=(const QString &lhs, const char *const &rhs)
rhs 型のconst charポインタは、QUtf8StringView 型に変換されます。
アプリケーションのコンパイル時に `QT_NO_CAST_FROM_ASCII ` を定義することで、この演算子を無効にすることができます。これは、例えば、ユーザーに表示されるすべての文字列が `QObject::tr()` を経由するようにしたい場合などに役立ちます。
この関数は、QString::operator>=() をオーバーロードしています。
QDataStream &operator>>(QDataStream &stream, QString &string)
指定されたstream から文字列を読み取り、指定されたstring に格納します。
「Qtデータ型のシリアライズ」も参照してください 。
マクロのドキュメント
QStringLiteral(str)
このマクロは、コンパイル時に文字列リテラル `str ` から `QString ` のデータを生成します。この場合、これをもとに `QString ` を作成する処理はコストがかからず、生成された文字列データはコンパイル済みオブジェクトファイルの読み取り専用セグメントに格納されます。
次のようなコードがある場合:
// hasAttribute takes a QString argument
if (node.hasAttribute("http-contents-length")) {
//...
}この場合、hasAttribute 関数の引数として渡すために、一時的なQString が作成されます。これにはメモリの割り当てや、データをQString の内部エンコーディングへのコピー・変換が含まれるため、かなりのコストがかかる可能性があります。
代わりに QStringLiteral を使用することで、このオーバーヘッドを回避できます:
if (node.hasAttribute(QStringLiteral(u"http-contents-length"))){
//...
}この場合、QString の内部データはコンパイル時に生成されるため、実行時には変換や割り当ては行われません。
二重引用符で囲まれた通常の C++ 文字列リテラルではなく QStringLiteral を使用することで、コンパイル時に既知のデータからQString インスタンスを作成する処理を大幅に高速化できます。
注: 文字列が、QLatin1StringView を受け取るオーバーロードを持つ関数に渡され、そのオーバーロードがQString への変換を回避する場合、QLatin1StringView は 依然としてQStringLiteralよりも効率的である可能性があります。例えば、QString::operator==()はQLatin1StringView と直接比較できます:
if (attribute.name() == "http-contents-length"_L1){
//...
}注:一部の コンパイラには、US-ASCII文字セット以外の文字を含む文字列をエンコードする際のバグがあります。そのような場合は、文字列の先頭にu を付けるようにしてください。それ以外の場合は、これは任意です。
注:QStringLiteralは operator""_s と互換性があります。コード内に多くの文字列リテラルが存在する場合、後者を使用すると入力の手間を省くことができます。
QByteArrayLiteralも参照してください 。
QT_NO_CAST_FROM_ASCII
8ビット文字列(char * )からUnicode QStringへの自動変換、および8ビットchar 型(char およびunsigned char )からQChar への自動変換を無効にします。
QT_NO_CAST_TO_ASCII 、QT_RESTRICTED_CAST_FROM_ASCII 、およびQT_NO_CAST_FROM_BYTEARRAYも参照してください 。
QT_NO_CAST_TO_ASCII
QString から 8 ビット文字列への自動変換を無効にします (char *)。
QT_NO_CAST_FROM_ASCII 、QT_RESTRICTED_CAST_FROM_ASCII 、およびQT_NO_CAST_FROM_BYTEARRAYも参照してください 。
QT_RESTRICTED_CAST_FROM_ASCII
ソースリテラルや8ビットデータからUnicode QStringへの自動変換のほとんどを無効にしますが、QChar(char) およびQString(const char (&ch)[N] のコンストラクタ、ならびにQString::operator=(const char (&ch)[N]) の代入演算子の使用は許可されます。これにより、QT_NO_CAST_FROM_ASCII の型安全性の利点のほとんどが得られますが、ユーザーコードで文字リテラルや文字列リテラルをQLatin1Char 、QLatin1StringView などでラップする必要はありません。
このマクロを、7ビットの範囲外のソース文字列、リテラル以外のもの、またはNUL文字が埋め込まれたリテラルと併用すると、動作は未定義となります。
QT_NO_CAST_FROM_ASCII およびQT_NO_CAST_TO_ASCIIも参照してください 。
const char *qPrintable(const QString &str)
str をconst char * として返します。これは、str 、toLocal8Bit()、constData()と同等です。
qPrintable() が使用された文の終了後、char ポインタは無効になります。これは、QString::toLocal8Bit() が返す配列がスコープ外になるためです。
注: qDebug()、qInfo()、qWarning()、qCritical()、qFatal() は、%s 引数が UTF-8 エンコードされていることを前提としていますが、qPrintable() はローカルの 8 ビットエンコーディングに変換します。したがって、文字列のロギングには qPrintable() ではなくqUtf8Printable() を使用すべきです。
qUtf8Printable()も参照してください 。
const wchar_t *qUtf16Printable(const QString &str)
str をconst ushort * として返しますが、警告を回避するためにconst wchar_t * にキャストします。これは、str.utf16()にいくつかのキャストを加えたものと同等です。
このマクロの戻り値でできる有用なことは、%ls 変換で使用するためにQString::asprintf()に渡すことだけです。特に、この戻り値は有効なconst wchar_t*ではありません!
一般的に、qUtf16Printable() が使用された文の後は、ポインタは無効になります。これは、ポインタが一時的な式から取得された可能性があり、その式がスコープ外になるためです。
例:
qWarning("%ls: %ls", qUtf16Printable(key), qUtf16Printable(value));関連項目: qPrintable()、qDebug()、qInfo()、qWarning()、qCritical()、およびqFatal()。
const char *qUtf8Printable(const QString &str)
str をconst char * として返します。これは、str 、toUtf8()、constData()と同等です。
qUtf8Printable() が使用された文の終了後、char ポインタは無効になります。これは、QString::toUtf8() が返す配列がスコープ外になるためです。
例:
qWarning("%s: %s", qUtf8Printable(key), qUtf8Printable(value));関連項目: qPrintable()、qDebug()、qInfo()、qWarning()、qCritical()、およびqFatal()。
© 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.