QString Class

QString クラスは、Unicode 文字列を提供します。詳細...

ヘッダー #include <QString>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

このクラスは強く比較可能です。

このクラスはQCharQLatin1StringView 、 const char16_t * 、QStringViewQUtf8StringView強く比較可能です。

このクラスはQByteArray,QByteArrayView, const char * と強く比較可能である。

バイト配列と比較する場合、その内容は utf-8 として解釈されます。

注意:このクラスの関数はすべてリエントラントです。

パブリック型

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)
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()
文字列append(const QString&str)
QString & (const QString &str)append(QCharch)
QString & (QLatin1StringView str)append(QLatin1StringViewstr)
(since 6.0) QString & (QStringView v)append(QStringViewv)
(since 6.5) QString & (QUtf8StringView str)append(QUtf8StringViewstr)
QString & (QByteArray &ba)append(const QByteArray&ba)
QString & (const QByteArray &ba)append(const char*str)
QString & (const QChar *str, qsizetype l)append(const QChar*str, qsizetypelen)
QString arg(Args &&...args) const
QString arg(const QString&a, intfieldWidth= 0, QCharfillChar= u' ') const
QString arg(QChara, intfieldWidth= 0, QCharfillChar= u' ') const
QString arg(QLatin1StringViewa, intfieldWidth= 0, QCharfillChar= u' ') const
QString arg(QStringViewa, intfieldWidth= 0, QCharfillChar= u' ') const
QString arg(chara, intfieldWidth= 0, QCharfillChar= u' ') const
QString arg(inta, intfieldWidth= 0, intbase= 10, QCharfillChar= u' ') const
QString arg(longa, intfieldWidth= 0, intbase= 10, QCharfillChar= u' ') const
QString arg(qlonglonga, intfieldWidth= 0, intbase= 10, QCharfillChar= u' ') const
QString arg(qulonglonga, intfieldWidth= 0, intbase= 10, QCharfillChar= u' ') const
QString arg(shorta, intfieldWidth= 0, intbase= 10, QCharfillChar= u' ') const
QString arg(uinta, intfieldWidth= 0, intbase= 10, QCharfillChar= u' ') const
QString arg(ulonga, intfieldWidth= 0, intbase= 10, QCharfillChar= u' ') const
QString arg(ushorta, intfieldWidth= 0, intbase= 10, QCharfillChar= u' ') const
QString arg(doublea, intfieldWidth= 0, charformat= 'g', intprecision= -1, QCharfillChar= u' ') const
(since 6.6) QString &assign(QAnyStringViewv)
(since 6.6) QString & (QAnyStringView v)assign(InputIteratorfirst, InputIteratorlast)
(since 6.6) QString &assign(qsizetypen, QCharc)
const QChar at(qsizetypeposition) const
QChar & (qsizetype position)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::const_iterator ()
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
ブール contains(const QRegularExpression&re, QRegularExpressionMatch*rmatch= nullptr) const
ブール contains(const QString&str, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
ブール contains(QCharch, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
ブール contains(QLatin1StringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
ブール contains(QStringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
qsizetype count(const QString&str, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
qsizetype 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
QString::iterator end()
QString::const_iterator end() const
ブール endsWith(const QString&s, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
ブール endsWith(QCharc, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
ブール endsWith(QLatin1StringViews, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
ブール 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)
文字列fill(QCharch, qsizetypesize= -1)
(since 6.0) QString first(qsizetypen) && (QString::const_iterator it)
(since 6.0) QString first(qsizetypen) const & &(QChar ch, qsizetype size = -1)
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 & (qsizetype position, const QString &str)insert(qsizetypeposition, QCharch)
QString & (qsizetype position, const QString &str)insert(qsizetypeposition, QLatin1StringViewstr)
(since 6.0) QString & (qsizetype position, QLatin1StringView str)insert(qsizetypeposition, QStringViewstr)
(since 6.5) QString & (qsizetype position, QStringView str)insert(qsizetypeposition, QUtf8StringViewstr)
QString & (qsizetype position, QStringView str)insert(qsizetypeposition, const QByteArray&str)
QString & (qsizetype position, const QByteArray &str)insert(qsizetypeposition, const char*str)
QString & (qsizetype position, const QByteArray &str)insert(qsizetypeposition, const QChar*unicode, qsizetypesize)
ブール isEmpty() const
ブール isLower() const
ブール isNull() const
ブール isRightToLeft() const
ブール isUpper() const
ブール isValidUtf16() const
(since 6.0) QString last(qsizetypen) && QString
(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
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
QString &(const QString &str)prepend(const QString&str)
QString & (const QString &str)prepend(QCharch)
QString & (const QString &str)prepend(QLatin1StringViewstr)
(since 6.0) QString & (QStringView str)prepend(QStringViewstr)
(since 6.5) QString & (QStringView str)prepend(QUtf8StringViewstr)
QString & (QByteArray &ba)prepend(const QByteArray&ba)
QString & (const QByteArray &ba)prepend(const char*str)
QString & (const QChar *str, qsizetype l)prepend(const QChar*str, qsizetypelen)
void push_back(const QString&other)
void push_back(QCharch)
void push_front(const QString&other)
無効 push_front(QCharch)
QString::reverse_iterator rbegin()
QString::const_reverse_iterator rbegin() const
QString &remove(const QRegularExpression&re)
QString & (const QRegularExpression &re)remove(QCharch, Qt::CaseSensitivitycs= Qt::CaseSensitive)
文字列remove(const QString&str, Qt::CaseSensitivitycs= Qt::CaseSensitive)
QString & (qsizetype position, Qt::CaseSensitive)remove(qsizetypeposition, qsizetypen)
QString & (qsizetype position, qsizetype n)remove(QLatin1StringViewstr, Qt::CaseSensitivitycs= Qt::CaseSensitive)
(since 6.5) QString & (qsizetype pos)removeAt(qsizetypepos)
(since 6.5) QString & (qsizetype pos)removeFirst()
(since 6.1) QString & (qsizetype pos)removeIf(述語pred)
(since 6.5) QString & (述語pred)removeLast()
QString::reverse_iterator rend()
QString::const_reverse_iterator rend() const
QString repeated(qsizetypetimes) const
QString &(qsizetype position, qsizetype n, const QString &after)replace(qsizetypeposition, qsizetypen, const QString&after)
QString & (qsizetype position, qsizetype n, const QString &after)replace(const QRegularExpression&re, const QString&after)
QString & (const QRegularExpression &re, const QString &after)replace(QCharbefore, QCharafter, Qt::CaseSensitivitycs= Qt::CaseSensitive)
文字列replace(QCharc, QLatin1StringViewafter, Qt::CaseSensitivitycs= Qt::CaseSensitive)
QString &replace(QCharch, const QString&after, Qt::CaseSensitivitycs= Qt::CaseSensitive)
QString & (QLatin1StringView)replace(QLatin1StringViewbefore, QLatin1StringViewafter, Qt::CaseSensitivitycs= Qt::CaseSensitive)
QLatin1StringViewreplace(QLatin1StringViewbefore, const QString&after, Qt::CaseSensitivitycs= Qt::CaseSensitive)
QString &replace(const QString&before, QLatin1StringViewafter, Qt::CaseSensitivitycs= Qt::CaseSensitive)
QString & (const QString &before, QLatin1StringView after)replace(const QString&before, const QString&after, Qt::CaseSensitivitycs= Qt::CaseSensitive)
QString &replace(qsizetypeposition, qsizetypen, QCharafter)
QString & (qsizetype position, qsizetype n, QChar after)replace(qsizetypeposition, qsizetypen, const QChar*after, qsizetypealen)
QString & (qsizetype position, qsizetype after, qsizetype alen)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 &(int n, int base = 10)setNum(intn, intbase= 10)
QString & (long n, int base = 10)setNum(longn, intbase= 10)
QString & (long n, int base = 10)setNum(qlonglongn, intbase= 10)
QString & (qulonglong n, int base = 10)setNum(qulonglongn, intbase= 10)
QString & (qulonglong n, int base = 10)setNum(shortn, intbase= 10)
QString & (uint n, int base = 10)setNum(uintn, intbase= 10)
QString &(ulong n, int base = 10setNum(ulongn, intbase= 10)
QString & (uhort n, int base = 10)setNum(ushortn, intbase= 10)
QString & (double n, char format = 'g')setNum(doublen, charformat= 'g', intprecision= 6)
QString & (float n, char format = 'g', int precision = 6)setNum(floatn, charformat= 'g', intprecision= 6)
QString & (const QChar *unic)setRawData(const QChar*unicode, qsizetypesize)
QString & (const QChar *unicode, qsizetype size)setUnicode(const QChar*unicode, qsizetypesize)
QString & (const QChar *unicode, qsizetype size)setUtf16(const ushort*unicode, qsizetypesize)
void shrink_to_fit()
QString simplified() const
qsizetype size() const
(since 6.8) QString & (qsizetype pos, qsizetype n)slice(qsizetypepos, qsizetypen)
(since 6.8) QString & (qsizetype pos, qsizetype n)slice(qsizetypepos)
(since 6.0) QString sliced(qsizetypepos, qsizetypen) &&.
(since 6.0) QString sliced(qsizetypepos, qsizetypen) const &.
(since 6.0) QString sliced(qsizetypepos) && qsizetype n
(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()
ブール startsWith(const QString&s, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
ブール startsWith(QCharc, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
ブール startsWith(QLatin1StringViews, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
ブール 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
短い toShort(bool*ok= nullptr, intbase= 10) const
文字列 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(ニードル&&sep, フラグ...flags) &&.
(since 6.0) auto tokenize(ニードル&&sep, フラグ...flags) const &&
(since 6.0) auto tokenize(ニードル&&sep, フラグ...flags) const && auto
QString trimmed() const
void truncate(qsizetype位置)
const QChar *.unicode() const
const ushort *utf16() const
(since 6.7) std::u16string_view operator std::u16string_view() const
QString &operator+=(const QString&other)
QString &operator+=(QCharch)
QString & (QLatin1StringView str)operator+=(QLatin1StringViewstr)
(since 6.0) QString & (QStringView str)operator+=(QStringViewstr)
(since 6.5) QString & (QStringView str)operator+=(QUtf8StringViewstr)
QString & (QByteArray &ba)operator+=(const QByteArray&ba)
QString & (const QByteArray &ba)operator+=(const char*str)
QString & (const QByteArray &str)operator=(QString&&other)
QString & (QString &&other)operator=(const QString&other)
文字列operator=(QCharch)
QString & (QLatin1StringView str)operator=(QLatin1StringViewstr)
QString & (const QByteArray &ba)operator=(const QByteArray&ba)
QString & (const QByteArray &ba)operator=(const char*str)
QChar & (qsizetype position)operator[](qsizetype位置)
const QChar operator[](qsizetype位置) 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(CFStringRef文字列)
(since 6.6) QString fromEcmaString(emscripten::valjsString)
QString fromLatin1(const char*str, qsizetypesize)
(since 6.0) QString fromLatin1(QByteArrayViewstr)
Q文字列 fromLatin1(const QByteArray&str)
Q文字列 fromLocal8Bit(const char*str, qsizetypesize)
(since 6.0) Q文字列 fromLocal8Bit(QByteArrayViewstr)
Q文字列 fromLocal8Bit(const QByteArray&str)
Q文字列 fromNSString(const NSString*string)
QString fromRawData(const QChar*unicode, qsizetypesize)
QString fromStdString(const std::string&str)
Q文字列 fromStdU16String(const std::u16string&str)
Q文字列 fromStdU32String(const std::u32string&str)
Q文字列 fromStdWString(const std::wstring&str)
Q文字列 fromUcs4(const char32_t*ユニコード, qsizetypesize= -1)
QString fromUtf8(const char*str, qsizetypesize)
(since 6.0) QString fromUtf8(QByteArrayViewstr)
Q文字列 fromUtf8(const QByteArray&str)
(since 6.1) Q文字列 fromUtf8(const char8_t*str)
(since 6.0) Q文字列 fromUtf8(const char8_t*str, qsizetypesize)
Q文字列 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()
QString number(longn, intbase= 10)
Q文字列 number(doublen, charformat= 'g', intprecision= 6)
Q文字列 number(intn, intbase= 10)
Q文字列 number(qlonglongn, intbase= 10)
Q文字列 number(qulonglongn, intbase= 10)
Q文字列 number(uintn, intbase= 10)
Q文字列 number(ulongn, intbase= 10)
Q文字列 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)
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ビットのQCharsの文字列を格納します。各QChar は1つのUTF-16コードユニットに対応します。(65535以上のコード値を持つUnicode文字は、サロゲートペア、つまり2つの連続したQCharsを使用して格納されます)。

ユニコードは、現在使われているほとんどの文字体系をサポートする国際標準です。これはUS-ASCII (ANSI X3.4-1986)とLatin-1 (ISO 8859-1)のスーパーセットで、US-ASCII/Latin-1文字はすべて同じコード位置で使用できます。

舞台裏では、QStringは暗黙の共有(copy-on-write)を使用してメモリ使用量を削減し、不要なデータのコピーを回避しています。これは、8ビット文字の代わりに16ビット文字を格納する固有のオーバーヘッドを削減するのにも役立ちます。

Qt では、QString の他にQByteArray クラスも提供しており、生のバイトや従来の 8 ビット終端文字列を格納することができます。ほとんどの場合、QString が使用するクラスです。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 でエンコードされていると見なされます。

文字列データをQCharの配列として指定することもできる:

static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };
QString str(data, 4);

QStringは、QChar データのディープコピーを作成するので、副作用を経験することなく、後でそれを変更することができます。代わりにQStringView またはQString::fromRawData() を使用することで、文字データのディープコピーを回避できます。

もう1つの方法は、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() 関数を使用する方法もあります:

QStringstr;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(const char *)コンストラクタを呼び出して、QStringを引数に取る関数に文字列リテラルを渡すこともできます。同様に、qPrintable() マクロを使用して、const char * 引数を取る関数に QString を渡すことができます。const char * マクロは、指定された QString を として返します。これは <QString>.toLocal8Bit().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 に対して最初に使用されたconst 以外の演算子や関数は、内部的にそのデータのディープ コピーを実行する可能性があります。これにより、文字列に対するすべてのイテレータと、文字列内の個々の文字への参照が無効になります。イテレータを保持したままconst以外の関数を呼び出さないでください。無効化された後にイテレータや参照にアクセスすると、未定義の動作になります。詳細については、暗黙の共有イテレータ問題のセクションを参照してください。

よくある要求として、文字列内の可視文字の間隔を削除したり簡略化したりすることがあります。この間隔を構成する文字は、isSpace() がtrue を返すもので、単純なスペース' ' 、水平タブ'\\t' 、改行'\\n' などである。文字列の先頭と末尾からスペースを除いたコピーを取得するには、trimmed() を使用する。また、文字列内の各スペーシング文字を単純なスペース' ' に置き換えるには、simplified() を使用する。

QString内の特定の文字や部分文字列の出現箇所をすべて検索したい場合は、indexOf ()またはlastIndexOf ()関数を使用します。前者は前方、後者は後方を検索します。前者は前方検索を行い、後者は後方検索を行います。どちらの関数でも、検索を開始するインデックス位置を指定することができます。それぞれ、文字または部分文字列が見つかればそのインデックス位置を返し、見つからなければ-1を返します。そうでない場合は-1を返す。例えば、特定の部分文字列の出現回数をすべて検索する典型的なループを以下に示す:

QStringstr= "<b>太字</b>でなければならない、非常に<b>太字</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() を使用します。

文字列のリストはQStringListsplit ()関数を使用すると、文字列を文字列のリストに分割できます。また、QStringList::join ()関数を使用すると、文字列のリストを任意の区切り文字を使用して1つの文字列に結合できます。文字列リストから、特定の部分文字列を含むエントリや、特定のQRegularExpression にマッチするエントリを選択することで、フィルタリングされたリストを取得できます。詳細はQStringList::filter() を参照。

文字列データのクエリ

QString が特定の部分文字列で始まるか終わるかを調べるには、startsWith() またはendsWith() を使用します。QString に特定の文字や部分文字列が含まれているかどうかを調べるには、contains() 関数を使用します。文字列内で特定の文字や部分文字列が何回出現するかを調べるには、 count() を使用します。

実際の文字データへのポインタを取得するには、data() またはconstData() を呼び出します。これらの関数は、QChar データの先頭へのポインタを返す。このポインタは、const 以外の関数が QString に対して呼び出されるまで有効であることが保証されています。

文字列の比較

QString は、operator<(),operator<=(),operator==(),operator>=() などのオーバーロードされた演算子を使って比較することができます。比較は、UTF-16コードユニットのシーケンスとして見られる、2つの文字列の辞書順に基づいてのみ行われます。これは非常に高速ですが、人間が期待するようなものではありません。このような比較が可能な場合、ユーザーインターフェースの文字列をソートするには、通常、QString::localeAwareCompare ()関数の方が良い選択です。

QtがICUライブラリとリンクされている場合(通常はリンクされている)、ICUライブラリのロケール対応ソートが使用されます。そうでない場合は、プラットフォーム固有のソリューションが使用されます:

  • Windowsでは、localeAwareCompare ()は、Control Panelregionallanguage オプション部で設定された現在のユーザー・ロケールを使用します。
  • macOSとiOSでは、localeAwareCompare ()は、International preferences パネルのOrder for sorted lists 設定に従って比較する。
  • その他のUnix系システムでは、システム・ライブラリのstrcoll()

エンコードされた文字列データとQStringの変換

QByteArrayQStringには、文字列のconst char * バージョンを返す以下の関数があります: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の使用はより便利になりますが、間違った8ビット・エンコーディングを使用してconst char * 、または への暗黙の変換が行われる危険性が常にあります。このようなリスクを最小限にするために、以下のプリプロセッサ・シンボルを定義することで、暗黙の変換をオフにすることができます:

  • 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 クラスを使用する必要があります。例えば

QString url = "https://www.unicode.org/"_L1;

同様に、QString を 8 ビット文字列に変換するには、toLatin1()、toUtf8()、toLocal8Bit() を明示的に呼び出す必要があります。

Cプログラマーへの注意
C++ の型システムと QString が暗黙的に共有されているため、QString はintや他の基本型のように扱われることがあります。例えば
QString Widget::boolToString(bool b)
{
    QString result;
    if (b)
        result = "True";
    else
        result = "False";
    return result;
}

result 変数はスタックに割り当てられた通常の変数です。return が呼び出されると、値で返すため、コピーコンストラクタが呼び出され、文字列のコピーが返されます。暗黙の共有のおかげで、実際のコピーは行われない。

ヌル文字列と空文字列の区別

歴史的な理由から、QString ではヌル文字列と空文字列を区別しています。ヌル文字列とは、QString のデフォルトのコンストラクタを使用して初期化された文字列、またはコンストラクタにnullptr を渡して初期化された文字列のことです。空文字列とは、サイズが 0 の文字列のことです。ヌル文字列は常に空ですが、空文字列がヌルとは限りません:

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 false

isNull() を除くすべての関数は、ヌル文字列を空文字列と同じように扱います。例えば、toUtf8().constData() は、ヌル文字列に対して有効なポインタ(nullptr ではなく、' \0' 文字へのポインタ)を返します。常に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桁を含み、必要であればゼロを左詰めします。

より効率的な文字列作成

多くの文字列はコンパイル時に既知である。C++文字列リテラルからのQStringコンストラクタは、文字列の内容をUTF-8として扱ってコピーします。この場合、メモリの割り当てと文字列データの再エンコードが必要になりますが、これらの操作は実行時に行われます。コンパイル時に文字列データがわかっている場合は、代わりにQStringLiteral マクロまたは同様のoperator""_s を使用して、QString のペイロードをコンパイル時に作成できます。

QString'+' 演算子を使用すると、複数の部分文字列から複雑な文字列を簡単に作成できます。このようなコードを書くことはよくあります:

    QString foo;
    QString type = "long";

    foo = "vector<"_L1 + type + ">::iterator"_L1;

    if (foo.startsWith("(" + type + ") 0x"))
        ...

どちらの文字列構造にも問題はありませんが、いくつかの隠れた非効率性があります:

まず、'+' 演算子を繰り返し使うと、複数のメモリ割り当てが発生する可能性がある。n個の部分文字列(n > 2)を連結する場合、メモリ・アロケータへの呼び出しはn - 1回にもなる。

これらのメモリ確保は、内部クラスQStringBuilder で最適化できる。このクラスは内部クラスとマークされており、ドキュメントには記載されていない。以下で説明するように、このクラスは自動的に使用されます。このクラスはsrc/corelib/tools/qstringbuilder.cpp にあります。

QStringBuilder このクラスは式テンプレートを使用し、 演算子を再実装しています。 の代わりに を文字列の連結に使用すると、複数の部分文字列の連結は、最終結果が QString に代入されるまで延期されます。この時点で、最終的な結果に必要なメモリ量が判明する。その後、メモリ・アロケータが'%' '+' '%' 1回呼び出されて必要な領域が確保され、部分文字列が1つずつそこにコピーされる。

インライン化と参照カウントの削減により、さらなる効率化が図られている(QStringBuilder から作成される QString の参照カウントは 1 であるのに対し、QString::append() では余分なテストが必要である)。

この改良された文字列作成方法にアクセスするには、2つの方法があります。単純な方法は、QStringBuilder を使用したい場所にインクルードし、文字列を連結する際に'+' の代わりに'%' 演算子を使用することです:

    #include <QStringBuilder>

    QString hello("hello");
    QStringView el = QStringView{ hello }.mid(2, 3);
    QLatin1StringView world("world");
    QString message =  hello % el % world % 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ビット・システムでは2GB以上のメモリを割り当てることができますが、一般的な上限は2^63バイトです。実際の値は、データ・ブロックの管理に必要なオーバーヘッドにも依存します。その結果、32ビット・プラットフォームでは2GBからオーバーヘッドを差し引いたサイズ、64ビット・プラットフォームでは2^63バイトからオーバーヘッドを差し引いたサイズが最大になると予想されます。QString に格納できる要素数は、この最大サイズをQChar のサイズで割ったものになります。

メモリ割り当てに失敗すると、アプリケーションが例外サポート付きでコンパイルされている場合、QString はstd::bad_alloc 例外をスローします。Qt が例外をスローするのは、Qt コンテナのメモリ不足の場合だけです。例外が無効になっている場合、メモリ不足は未定義の動作です。

注意: 対象となるオペレーティング・システムでは、アプリケーションが割り当てられるメモリの総量や、個々の割り当てサイズに制限が課されることがあります。これにより、QStringが保持できる文字列のサイズがさらに制限される場合があります。これらの制限によって引き起こされる動作の緩和や制御は、Qt API の範囲を超えています。

fromRawData(),QChar,QStringView,QLatin1StringView,QByteArrayも参照してください

メンバ型のドキュメント

QString::ConstIterator

Qt-style synonym forQString::const_iterator.

QString::Iterator

Qt-style synonym forQString::iterator.

enum QString::NormalizationForm

この列挙型は、Unicodeテキストのさまざまな正規化形式を記述します。

定数説明
QString::NormalizationForm_D0正準分解
QString::NormalizationForm_C1正準分解に続く正準合成
QString::NormalizationForm_KD2互換分解
QString::NormalizationForm_KC3互換分解に続く正準合成

normalized() およびUnicode Standard Annex #15も参照

enum QString::SectionFlag
flags QString::SectionFlags

この列挙型は、section() 関数のセパレータや空フィールドに関する動作のさまざまな側面に影響を与えるために使用できるフラグを指定します。

定数説明
QString::SectionDefault0x00空のフィールドはカウントされ、先頭と末尾のセパレータは含まれず、セパレータは大文字と小文字を区別して比較されます。
QString::SectionSkipEmpty0x01空のフィールドは存在しないものとして扱われます。
QString::SectionIncludeLeadingSep0x02もしあれば)先頭のセパレータを結果文字列に含める。
QString::SectionIncludeTrailingSep0x04もしあれば)末尾のセパレータも結果文字列に含める。
QString::SectionCaseInsensitiveSeps0x08セパレーターは大文字と小文字を区別せずに比較する。

SectionFlags 型はQFlags<SectionFlag> の typedef である。セクションフラグの値の OR の組み合わせを格納する。

section()も参照

QString::const_iterator

QString::iteratorも参照のこと

QString::const_pointer

QString::const_pointer typedef は、QString 要素 (QChar) への STL スタイルの const ポインタを提供します。

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 typedef は、QString 要素 (QChar) への STL スタイルのポインタを提供する。

QString::reference

QString::reverse_iterator

QString::const_reverse_iterator およびQString::iteratorも参照のこと

QString::size_type

QString::value_type

メンバー関数ドキュメント

QString QString::left(qsizetype n) &&

QString QString::left(qsizetype n) const &

文字列の左端の文字n を含む部分文字列を返す。

n が範囲外であってはならないことが分かっている場合、新しいコードではfirst() を代わりに使用する。

nsize() より大きいか等しいか、ゼロより小さい場合は、文字列全体が返される。

first()、last()、startsWith()、chopped()、chop()、truncate()も参照のこと

QString QString::right(qsizetype n) const &

文字列の右端の文字n を含む部分文字列を返す。

n が範囲外であってはならないことが分かっている場合、新しいコードではlast() を代わりに使用する。

nsize() より大きいか等しいか、ゼロより小さい場合は、文字列全体が返される。

endsWith()、last()、first()、sliced()、chopped()、chop()、truncate()、slice()も参照の こと。

QString QString::mid(qsizetype position, qsizetype n = -1) &&

QString QString::mid(qsizetype position, qsizetype n = -1) const &

指定されたposition インデックスから始まる、この文字列のn 文字を含む文字列を返す。

positionn が範囲外であってはならないことが分かっている場合、新しいコードではsliced() を代わりに使うと高速になる。

position インデックスが文字列の長さを超える場合は、ヌル文字列を返す。指定されたposition から始まる文字列で使用可能な文字がn 未満の場合、またはn が -1 の場合(デフォルト)、この関数は、指定されたposition から使用可能なすべての文字を返します。

first()、last()、sliced()、chopped()、chop()、truncate()、slice()も参照のこと

[since 6.0] QString QString::first(qsizetype n) &&

[since 6.0] QString QString::first(qsizetype n) const &

この文字列の最初のn 文字を含む文字列を返す。

注意: n < 0 またはn >size() の場合の動作は未定義です。

QString x = "Pineapple";
QString y = x.first(4);      // y == "Pine"

この関数は Qt 6.0 で導入されました。

last(),sliced(),startsWith(),chopped(),chop(),truncate(),slice()も参照してください

[since 6.0] QString QString::last(qsizetype n) &&

[since 6.0] QString QString::last(qsizetype n) const &

この文字列の最後のn 文字を含む文字列を返す。

注意: n < 0 またはn >size() の場合の動作は未定義です。

QString x = "Pineapple";
QString y = x.last(5);      // y == "apple"

この関数は Qt 6.0 で導入されました。

first()、sliced()、endsWith()、chopped()、chop()、truncate()、slice()も参照してください

[since 6.0] QString QString::sliced(qsizetype pos, qsizetype n) &&

[since 6.0] QString QString::sliced(qsizetype pos, qsizetype n) const &

pos の位置から始まる、この文字列のn 文字を含む文字列を返す。

注意: 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()も参照してください

QString QString::chopped(qsizetype len) &&

QString QString::chopped(qsizetype len) const &

この文字列のsize() -len 左端の文字を含む文字列を返す。

注意: len が負またはsize() より大きい場合の動作は未定義。

endsWith()、first()、last()、sliced()、chop()、truncate()、slice()も参照

[static constexpr noexcept, since 6.8] qsizetype QString::maxSize()

[constexpr noexcept, since 6.8] qsizetype QString::max_size() const

これは、文字列が理論的に保持できる要素の最大数を返す。実際には、システムで利用可能なメモリ量によって制限されるため、この数はもっと小さくなります。

この関数は Qt 6.8 で導入されました。

template <typename... Args> QString QString::arg(Args &&... args) const

この文字列内の%N の出現箇所を、args の対応する引数で置き換える。 引数は位置指定ではない。args の最初の引数は、%N を最も低いN (すべて)で置き換え、args の 2 番目の引数は、%N を次に低いN で置き換えるなど。

Args は、暗黙のうちに 、 、 に変換するものであれば何でも構わない。QString QStringView QLatin1StringView

さらに、以下の型もサポートされている:QChar QLatin1Char

QString::arg()も参照のこと

[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(Class Template Argument Deduction)が有効になっていなくても動作します。

sepflags がどのように相互作用して結果を形成するかについては、QStringTokenizer を参照してください。

: この関数はQStringTokenizer を返しますが、テンプレート引数に明示的な名前を付けることは絶対にしないでください。C++17 CTAD(Class Template Argument Deduction:クラス テンプレート引数推論)を使用できる場合は、次のように記述できます。

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 です。

注: (2) はnoexcept(qTokenize(std::declval<const QString &>(), std::forward<Needle>(needle), flags...))true のとき noexcept です。

注: (3) はnoexcept(qTokenize(std::declval<const QString>(), std::forward<Needle>(needle), flags...))true のとき noexcept です。

QStringTokenizer およびqTokenize()も参照のこと

[constexpr noexcept] QString::QString()

NULL文字列を作成します。NULL 文字列も空文字列とみなされます。

isEmpty()、isNull()、Distinction Between Null and Empty Stringsも参照

QString::QString(QChar ch)

文字ch を含むサイズ1の文字列を構築する。

QString::QString(QLatin1StringView str)

str が見ている Latin-1 文字列のコピーを構築する。

fromLatin1()も参照

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 の場合、NULL 文字列が構築されます。

size が負の場合、unicode は'終端配列'を指すものと見なされ、その長さは動的に決定されます。終端のヌル文字は文字列の一部とは見なされません。

QStringは文字列データのディープコピーを作成します。ユニコード・データはそのままコピーされ、バイト・オーダー・マークがある場合は保持されます。

fromRawData()も参照してください

QString::QString(qsizetype size, QChar ch)

すべての文字がch に設定された、与えられたsize の文字列を構築する。

fill()も参照のこと

[noexcept] QString::QString(const QString &other)

other のコピーを構築する。

QStringは暗黙的に共有されるため、この操作には一定の時間がかかる。これにより、関数からQStringを返すのが非常に高速になります。共有インスタンスが変更された場合、それはコピーされ(コピーオンライト)、線形時間がかかります。

operator=()も参照してください

[noexcept] QString::QString(QString &&other)

Move-QStringインスタンスを構築し、other が指していたのと同じオブジェクトを指すようにする。

[noexcept] QString::~QString()

文字列を破壊する。

QString &QString::append(const QString &str)

この文字列の末尾に文字列str を追加する。

QString x = "free";
QString y = "dom";

x.append(y);
// x == "freedom"

これはinsert() 関数を使用するのと同じである:

x.insert(x.size(), y);

append()関数は通常、非常に高速(定数時間)である。これは、QString が文字列データの末尾に余分なスペースをあらかじめ割り当てているため、毎回文字列全体を再割り当てすることなくデータを増やすことができるからである。

operator+=()、prepend()、insert()も参照の こと。

QString &QString::append(QChar ch)

この関数は append() をオーバーロードする。

この文字列に文字ch を追加します。

QString &QString::append(QLatin1StringView str)

この関数は append() をオーバーロードする。

str で表示された Latin-1 文字列をこの文字列に追加します。

[since 6.0] QString &QString::append(QStringView v)

この関数は append() をオーバーロードしたものです。

与えられた文字列ビューv をこの文字列に追加し、結果を返します。

この関数は Qt 6.0 で導入されました。

[since 6.5] QString &QString::append(QUtf8StringView str)

この関数は append() をオーバーロードする。

UTF-8 文字列ビューstr をこの文字列に追加します。

この関数は Qt 6.5 で導入されました。

QString &QString::append(const QByteArray &ba)

この関数は append() をオーバーロードする。

バイト配列ba をこの文字列に追加します。指定されたバイト配列は、fromUtf8() 関数を使用して Unicode に変換されます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この関数を無効にすることができます。これは、例えば、ユーザから見える文字列がすべてQObject::tr() を通過するようにしたい場合に便利です。

QString &QString::append(const char *str)

この関数は append() をオーバーロードする。

この文字列に文字列str を追加します。与えられた const char ポインタはfromUtf8() 関数を使用して Unicode に変換されます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この関数を無効にすることができます。これは、例えば、ユーザから見える文字列がすべてQObject::tr() を通過するようにしたい場合に便利です。

QString &QString::append(const QChar *str, qsizetype len)

この関数は append() をオーバーロードする。

QChar 配列str からlen 文字をこの文字列に追加します。

QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = u' ') const

最下位のプレースマーカーを文字列a に置き換えたこの文字列のコピー、すなわち%1,%2, ...,%99 を返す。

fieldWidth は、引数 が占有するスペースの最小量を指定する。 が よりも少ないスペースしか必要としない場合、 に文字 がパディングされる。正の を指定す る と 、 テ キ ス ト は右揃えにな り ます。負の値 を指定すると、左揃えのテキストが生成されます。a a fieldWidth fieldWidth fillChar fieldWidth fieldWidth

この例では、ファイル一覧の処理中に進捗状況を報告するためのstatus 文字列を作成する方法を示す:

QString i;           // current file's number
QString total;       // number of files to process
QString 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 を置き換える。

arg()をasprintf()よりも使用する利点の1つは、アプリケーションの文字列が他の言語に翻訳された場合、番号付けされたプレースマーカーの順序が変わる可能性がありますが、各arg()は、それがどこに現れても、最も低い番号の置き換えられていないプレースマーカーを置き換えます。また、プレースマーカー%i が文字列中に複数回現れた場合、arg() はそれらすべてを置き換えます。

置換されていないプレースマーカーが残っていない場合、警告メッセージが出力され、結果は未定義となる。プレースマーカー番号は 1 から 99 の範囲でなければならない。

QString QString::arg(QChar a, int fieldWidth = 0, QChar fillChar = u' ') const

この関数は arg() をオーバーロードする。

QString QString::arg(QLatin1StringView a, int fieldWidth = 0, QChar fillChar = u' ') const

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

最下位のプレースマーカーをa で見た Latin-1 文字列に置き換えたこの文字列のコピー、すなわち%1%2 、...、%99 を返す。

fieldWidth は、 が占有するスペースの最小量を指定する。 が よりも少ないスペースしか必要としない場合、 に文字 がパディングされる。正の を指定す る と 、 テ キ ス ト は右揃えにな り ます。負の値 を指定すると、左揃えのテキストが生成される。a a fieldWidth fieldWidth fillChar fieldWidth fieldWidth

asprintf ()よりもarg()を使う利点の1つは、アプリケーションの文字列が他の言語に翻訳された場合、番号付けされたプレースマーカーの順序が変わる可能性がありますが、各arg()は、それがどこに現れるかに関係なく、最も低い番号の置換されていないプレースマーカーを置き換えます。また、プレースマーカー%i が文字列中に複数回現れると、arg() はそれらすべてを置き換える。

置換されていないプレースマーカーが残っていない場合、警告メッセージが表示され、結果は未定義となる。プレースマーカー番号は1~99の範囲でなければならない。

QString QString::arg(QStringView a, int fieldWidth = 0, QChar fillChar = u' ') const

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

最下位のプレースマーカーを文字列a 、すなわち%1,%2, ... ,%99 に置き換えたこの文字列のコピーを返す。

fieldWidth は、 が占有する最小スペースを指定する。 が よりも少ないスペースしか必要としない場合、 に文字 がパディングされる。正の を指定す る と 、 テ キ ス ト は右揃えにな り ます。負の を指定す る と 、 左揃えのテ キ ス ト が生成 さ れます。a a fieldWidth fieldWidth fillChar 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の範囲でなければならない。

QString QString::arg(char a, int fieldWidth = 0, QChar fillChar = u' ') const

この関数は arg() をオーバーロードする。

a 引数は Latin-1 文字として解釈される。

QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const

この関数はarg()をオーバーロードする。

引数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"

Number Formatsも参照のこと。

QString QString::arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const

この関数はarg()をオーバーロードする。

fieldWidth は、 がパディングされ、文字 で埋められるスペースの最小量を指定します。正の値は右寄せテキストを生成し、負の値は左寄せテキストを生成します。a fillChar

引数a は、与えられたbase で表現され、デフォルトでは 10 であり、2 から 36 の間でなければならない。

'%'の後に'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"

Number Formatsも参照のこと

QString QString::arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const

この関数はarg()をオーバーロードする。

fieldWidth は、 がパディングされ、文字 で埋められるスペースの最小量を指定します。正の値を指定すると右寄せテキストになり、負の値を指定すると左寄せテキストになる。a fillChar

base 引数は、整数a を文字列に変換する際に使用する基数を指定する。基数は2から36の間でなければならず、8は8進数、10は10進数、16は16進数である。

Number Formatsも参照のこと

QString QString::arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const

この関数はarg()をオーバーロードする。

fieldWidth は、 がパディングされ、文字 で埋められるスペースの最小量を指定します。正の値を指定すると右寄せテキストになり、負の値を指定すると左寄せテキストになる。a fillChar

base 引数は、整数a を文字列に変換する際に使用する基数を指定します。base は2から36の間でなければならず、8は8進数、10は10進数、16は16進数です。

Number Formatsも参照のこと

QString QString::arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const

この関数はarg()をオーバーロードする。

fieldWidth は、 がパディングされ、文字 で埋められるスペースの最小量を指定します。正の値を指定すると右寄せテキストになり、負の値を指定すると左寄せテキストになる。a fillChar

base 引数は、整数a を文字列に変換する際に使用する基数を指定する。基数は2から36の間でなければならず、8は8進数、10は10進数、16は16進数である。

Number Formatsも参照のこと

QString QString::arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const

この関数はarg()をオーバーロードする。

引数base は、整数a を文字列に変換する際に使用する基数を指定する。基数は2以上36以下でなければならない。

Number Formatsも参照のこと

QString QString::arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const

この関数はarg()をオーバーロードする。

fieldWidth は、 がパディングされ、文字 で埋められるスペースの最小量を指定します。正の値を指定すると右寄せテキストになり、負の値を指定すると左寄せテキストになる。a fillChar

base 引数は、整数a を文字列に変換する際に使用する基数を指定する。基数は2から36の間でなければならず、8は8進数、10は10進数、16は16進数である。

Number Formatsも参照のこと

QString QString::arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const

この関数はarg()をオーバーロードする。

fieldWidth は、 がパディングされ、文字 で埋められるスペースの最小量を指定します。正の値を指定すると右寄せテキストになり、負の値を指定すると左寄せテキストになる。a fillChar

base 引数は、整数a を文字列に変換する際に使用する基数を指定する。基数は2から36の間でなければならず、8は8進数、10は10進数、16は16進数である。

Number Formatsも参照のこと

QString QString::arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = u' ') const

この関数はarg()をオーバーロードする。

引数a は、指定されたformatprecision に従ってフォーマットされる。詳細は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"

QLocale::toString()、QLocale::FloatingPointPrecisionOptionNumber Formatsも参照

[static] QString QString::asprintf(const char *cformat, ...)

フォーマット文字列cformat と任意の引数リストから、フォーマット文字列を安全に構築します。

書式文字列は、標準C++ライブラリのprintf()が提供する変換指定子、長さ修飾子、フラグをサポートしています。cformat 文字列と%s 引数は、UTF-8エンコードされていなければならない。

注: %lc エスケープ・シーケンスは、char16_t 、またはushortQChar::unicode ()によって返される)型の unicode 文字を想定している。%ls エスケープ・シーケンスでは、char16_t 、または ushort 型(QString::utf16() が返す)のユニコード文字のゼロ終端配列へのポインタを想定している。これは、標準C++ライブラリのprintf()が%lc をwchar_t、%lswchar_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.toString() によってあたかも UTF-16 に変換されたv のサイズに等しくなる。ただし、QAnyStringView::toString() とは異なり、この関数は、推定サイズがこの文字列の容量を超えるか、この文字列が共有されている場合にのみ、メモリを確保します。

この関数は Qt 6.6 で導入されました。

QAnyStringView::toString()も参照してください

[since 6.6] template <typename InputIterator, QString::if_compatible_iterator<InputIterator> = true> QString &QString::assign(InputIterator first, InputIterator last)

この文字列の内容を、イテレータ範囲 [first,last] 内の要素のコピーに置き換え、この文字列への参照を返します。

この文字列のサイズは、範囲 [first,last] 内の要素のデコードされた長さに等しくなります。この関数は、入力文字セットを透過的に UTF-16 に再コード化するので、範囲自体の長さと同じである必要はありません。

この関数は、範囲内の要素数、またはUTF-16エンコードされていない入力の場合は、結果の文字列の可能な最大サイズが、この文字列の容量を超える場合、またはこの文字列が共有されている場合にのみ、メモリを割り当てます。

注意: この関数のオーバーロードは、InputIteratorLegacyInputIteratorの要件を満たし、InputIteratorvalue_type が以下の文字型のいずれかである場合にのみ、オーバーロードの解決に参加します:

  • QChar
  • QLatin1Char
  • char
  • unsigned char
  • signed char
  • char8_t
  • char16_t
  • (Windowsのような16ビット型のプラットフォームでは)wchar_t
  • char32_t

注: 引数のいずれかが *this へのイテレータであるか、または [first,last] が有効な範囲でない場合、動作は未定義です。

この関数は Qt 6.6 で導入されました。

[since 6.6] QString &QString::assign(qsizetype n, QChar c)

この文字列の内容をcn コピーで置き換え、この文字列への参照を返す。

この文字列のサイズは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

この関数はbegin()をオーバーロードする。

qsizetype QString::capacity() const

再割り当てを行わずに文字列に格納できる最大文字数を返します。

この関数の唯一の目的は、QString'のメモリ使用量を微調整する手段を提供することです。一般に、この関数を呼び出す必要はほとんどないだろう。文字列内の文字数を知りたい場合は、size() を呼び出す。

注意: 静的に割り当てられた文字列は、それが空でなくても容量が0であると報告されます。

注意 :割り当てられたメモリ・ブロック内の空き領域の位置は未定義である。つまり、空きメモリが常に初期化された要素の後に位置すると仮定してはならない。

reserve() およびsqueeze()も参照の こと。

QString::const_iterator QString::cbegin() const

文字列の最初の文字を指す constSTL 形式のイテレータを返します。

警告 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。

begin() およびcend()も参照

QString::const_iterator QString::cend() const

文字列の最後の文字の直後を指す constSTL 形式のイテレータを返します。

警告 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。

cbegin() およびend()も参照

void QString::chop(qsizetype n)

文字列の末尾からn 文字を削除する。

nsize() 以上の場合、結果は空文字列となる。n が負の場合、ゼロを渡すのと同じである。

QString str("LOGOUT\r\n");
str.chop(2);
// str == "LOGOUT"

文字列の先頭から文字を削除したい場合は、代わりにremove() を使用する。

truncate()、resize()、remove()、QStringView::chop()も参照の こと。

void QString::clear()

文字列の内容をクリアして null にする。

resize() およびisNull()も参照

[static noexcept] int QString::compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

文字列s1 と文字列s2 を比較し、s1s2 より小さい場合は負の整数を、s2 より大きい場合は正の整数を、等しい場合は 0 を返す。

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

この関数は compare() をオーバーロードする。

大文字小文字を区別する設定cs を使用して、ch との比較を実行します。

[noexcept] int QString::compare(QLatin1StringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は compare() をオーバーロードする。

compare(*this,other,cs) と同じです。

[noexcept] int QString::compare(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は compare() をオーバーロードする。

大文字小文字を区別する設定cs を使用して、s との比較を実行します。

[noexcept] int QString::compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は compare() をオーバーロードしたものである。

この文字列と文字列other をレキシカルに比較し、この文字列がother より小さい場合は負の整数を、other より大きい場合は正の整数を、等しい場合はゼロを返します。

compare(*this,other,cs) と同じ。

[static noexcept] int QString::compare(QLatin1StringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は compare() をオーバーロードする。

大文字小文字を区別する設定cs を使用して、s1s2 の比較を実行します。

[static noexcept] int QString::compare(QStringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は compare() をオーバーロードする。

[static noexcept] int QString::compare(const QString &s1, QLatin1StringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は compare() をオーバーロードする。

大文字小文字を区別する設定cs を使用して、s1s2 の比較を実行します。

[static noexcept] int QString::compare(const QString &s1, QStringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は compare() をオーバーロードする。

QString::const_iterator QString::constBegin() const

文字列の最初の文字を指す constSTL 形式のイテレータを返します。

警告 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。

begin() およびconstEnd()も参照

const QChar *QString::constData() const

QString に格納されているデータへのポインタを返します。 このポインタを使用して、文字列を構成する文字にアクセスすることができます。

ポインタは、文字列が変更されない限り有効であることに注意してください。

注意: 返される文字列は、' \0'終端でない場合があります。配列の長さを決定するにはsize() を使用してください。

data()、operator[]()、およびfromRawData()も参照してください

QString::const_iterator QString::constEnd() const

文字列の最後の文字の直後を指す constSTL 形式のイテレータを返します。

警告 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。

constBegin() およびend()も参照

bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const

正規表現re がこの文字列のどこかにマッチする場合はtrue を返し、マッチしない場合はfalse を返す。

マッチに成功し、rmatchnullptr でない場合は、マッチの結果をrmatch が指すQRegularExpressionMatch オブジェクトに書き込みます。

QRegularExpression::match()も参照のこと

bool QString::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この文字列が文字列str の出現回数を含む場合はtrue を返し、そうでない場合はfalse を返す。

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

QString str = "Peter Pan";
str.contains("peter", Qt::CaseInsensitive);    // returns true

indexOf() およびcount()も参照

bool QString::contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は contains() をオーバーロードする。

この文字列がch の文字を含む場合はtrue を返し、そうでない場合はfalse を返します。

bool QString::contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は contains() をオーバーロードする。

この文字列がラテン文字1文字列str を含んでいる場合はtrue を返し、そうでない場合はfalse を返します。

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

この関数は contains() をオーバーロードする。

この文字列が文字列ビューstr の出現回数を含む場合はtrue を返し、そうでない場合はfalse を返します。

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

indexOf() およびcount()も参照

qsizetype QString::count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この文字列の中で、str という文字列が(重複している可能性がある)出現する回数を返す。

csQt::CaseSensitive (デフォルト) の場合は大文字小文字を区別し、それ以外の場合は区別しない。

contains() およびindexOf()も参照

qsizetype QString::count(const QRegularExpression &re) const

この関数は count() をオーバーロードしたものである。

正規表現re が文字列にマッチした回数を返します。

歴史的な理由により、この関数は重複したマッチを数えます。 そのため、以下の例では "ana" あるいは "ama" のインスタンスが 4 つ存在することになります:

QString str = "banana and panama";
str.count(QRegularExpression("a[nm]a"));    // returns 4

この動作は、QRegularExpressionMatchIterator を使って単に文字列のマッチを繰り返し処理するのとは異なります。

QRegularExpression::globalMatch()も参照のこと

qsizetype QString::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は count() をオーバーロードする。

文字列中の文字ch の出現回数を返す。

csQt::CaseSensitive の場合(デフォルト)、大文字小文字を区別して検索します。

contains() およびindexOf()も参照

[since 6.0] qsizetype QString::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は count() をオーバーロードする。

この文字列の中で、文字列 viewstr が(重複している可能性がある)出現する回数を返す。

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

この関数は Qt 6.0 で導入されました。

contains() およびindexOf()も参照してください

QString::const_reverse_iterator QString::crbegin() const

文字列の最初の文字を逆順に指す、STL 形式の逆順イテレータを返します。

警告 警告: 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。

begin()、rbegin()、rend()も参照

QString::const_reverse_iterator QString::crend() const

文字列の最後の文字の直後を指す、 constSTL 形式の逆順イテレータを返します。

警告 警告: 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。

end()、rend()、rbegin()も参照

QChar *QString::data()

QString に格納されているデータへのポインタを返します。 このポインタを使用して、文字列を構成する文字にアクセスしたり、変更したりすることができます。

constData() やunicode() と異なり、返されるデータは常に ' \0' 終端です。

QStringstr= "Hello world"QChar*data =str.data();while(!data->isNull()) {*data= str.data();while(!data->isNull())    qDebug() << data->unicode();
   ++data; }

ポインタは、文字列が他の手段で変更されない限り有効であることに注意。読み取り専用アクセスでは、constData ()の方がディープコピーが発生しないため高速である。

constData() およびoperator[]()も参照のこと

const QChar *QString::data() const

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

注意: 返される文字列は、' \0'終端でない場合があります。配列の長さを決定するにはsize() を使用してください。

fromRawData()も参照してください

QString::iterator QString::end()

文字列の最後の文字の直後を指すSTL 形式のイテレータを返します。

警告 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。

begin() およびconstEnd()も参照

QString::const_iterator QString::end() const

この関数は end() をオーバーロードする。

bool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

文字列がs で終わっていればtrue を返し、そうでなければfalse を返す。

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

QString str = "Bananas";
str.endsWith("anas");         // returns true
str.endsWith("pple");         // returns false

startsWith()も参照

bool QString::endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

文字列がc で終わっていればtrue を返し、そうでなければfalse を返す。

この関数は endsWith() をオーバーロードする。

bool QString::endsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は endsWith() をオーバーロードします。

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

この関数は endsWith() をオーバーロードする。

文字列が文字列ビューstr で終わっている場合はtrue を返し、そうでない場合はfalse を返します。

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

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()も参照

[static] QString QString::fromCFString(CFStringRef string)

string CFString のコピーを含む新しいQString を構築する。

注意: この関数は macOS と iOS でのみ使用可能です。

[static, since 6.6] QString QString::fromEcmaString(emscripten::val jsString)

ECMAScript 文字列 jsStringQString に変換します。 提供されたパラメータが文字列でない場合、動作は未定義です。

この関数は 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)」エンコーディングを返すからです。Windows では、システムの現在のコード・ページが使用されます。

注意: : バイト配列内のヌル('˶'˶')バイトは、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)」エンコーディングを返すからです。Windows では、システムの現在のコード・ページが使用されます。

注意 : バイト配列内のヌル('˶'˶')バイトは、Unicodeのヌル文字(U+0000)に変換されてこの文字列に含まれます。この動作はQt 5.xとは異なります。

[static] QString QString::fromNSString(const NSString *string)

string NSString のコピーを含む新しいQString を構築する。

注意: この関数はmacOSとiOSでのみ利用可能です。

[static] QString QString::fromRawData(const QChar *unicode, qsizetype size)

配列unicode 内の最初のsize Unicode キ ャ ラ ク タ を使用す るQString を構築 し ます。unicode 内のデータはコピーされない。呼び出し元は、QString (またはその変更されていないコピー)が存在する限り、unicode が削除または変更されないことを保証できなければならない。

QString 、またはそのコピーを変更しようとすると、データのディープコピーが作成され、生データが変更されないことが保証される。

以下は、QString にデータをコピーすることなく、メモリ上の生データに対してQRegularExpression を使用する方法の例である:

QRegularExpression pattern("\u00A4");
static const QChar unicode[] = {
        0x005A, 0x007F, 0x00A4, 0x0060,
        0x1009, 0x0020, 0x0020};
qsizetype size = sizeof(unicode) / sizeof(QChar);

QString str = QString::fromRawData(unicode, size);
if (str.contains(pattern) {
    // ...
}

警告: fromRawData()で作成された文字列は、生データがsize の位置に ' \0' 文字を含んでいない限り、' \0'終端ではありません。つまり、unicode() は ' \0' 終端の文字列を返しません(ただし、utf16() は生データをコピーします)。

fromUtf16() およびsetRawData()も参照

[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 バイトの場合は utf16 でエンコードされていると仮定され (windows など)、 wchar_t のサイズが 4 バイトの場合は ucs4 でエンコードされていると仮定される (ほとんどの Unix システム)。

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'-terminated でなければなりません。

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つ以上の「置換文字」で置き換えられるか、抑制されます。これらには、非Unicodeシーケンス、非文字、オーバーロングシーケンス、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

from のインデックス位置から前方へ検索して、この文字列内でstr が最初に表示する Latin-1 文字列のインデックス位置を返す。str が見つからない場合は -1 を返す。

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

例:from が -1 の場合、検索は最後の文字から始まり、-2 の場合、最後から次の文字から始まる。

lastIndexOf()、contains()、count()も参照の こと。

qsizetype QString::indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const

インデックス位置from から前方へ検索して、文字列中の正規表現re に最初にマッチするインデックス位置を返します。re がどこにもマッチしなかった場合は -1 を返す。

マッチに成功し、rmatchnullptr でない場合は、マッチの結果をrmatch が指すQRegularExpressionMatch オブジェクトにも書き込みます。

QString str = "the minimum";
str.indexOf(QRegularExpression("m[aeiou]"), 0);       // returns 4

QString str = "the minimum";
QRegularExpressionMatch match;
str.indexOf(QRegularExpression("m[aeiou]"), 0, &match);       // returns 4
// match.captured() == mi

qsizetype QString::indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この文字列内で最初に出現する文字列str のインデックス位置を、インデックス位置from から順に検索して返す。str が見つからない場合は -1 を返す。

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

例:from が -1 の場合、検索は最後の文字から始まり、-2 の場合、最後から次の文字から始まる。

lastIndexOf()、contains()、count()も参照の こと。

qsizetype QString::indexOf(QChar ch, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は indexOf() をオーバーロードする。

インデックス位置from から前方に検索して、この文字列内でch という文字が最初に出現するインデックス位置を返す。ch が見つからない場合は -1 を返す。

[noexcept] qsizetype QString::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は indexOf() をオーバーロードする。

インデックス位置from から前方を検索して、この文字列内で最初に出現する文字列ビューstr のインデックス位置を返します。str が見つからない場合は -1 を返します。

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

from が -1 の場合、検索は最後の文字から開始され、-2 の場合は次の文字から開始される。

QStringView::indexOf()、lastIndexOf()、contains()、count()も参照の こと。

QString &QString::insert(qsizetype position, const QString &str)

与えられたインデックスposition に文字列str を挿入し、この文字列への参照を返す。

QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal"

例: この文字列は、挿入に合わせて大きくなる。position が文字列の終端を越えている場合、文字列にスペース文字が追加され、このposition の後にstr が続く。

append()、prepend()、replace()、remove()も参照のこと

QString &QString::insert(qsizetype position, QChar ch)

この関数は insert() をオーバーロードする。

文字列の指定されたインデックスpositionch を挿入する。

この文字列は、挿入に合わせて大きくなる。position が文字列の終端を越えている場合、このposition に達するまで文字列にスペース文字が追加され、続いてch が追加される。

QString &QString::insert(qsizetype position, QLatin1StringView str)

この関数はinsert()をオーバーロードする。

与えられたインデックスposition に、str で見た Latin-1 文字列を挿入する。

この文字列は、挿入に合わせて大きくなる。position が文字列の終端を越えている場合、空白文字が文字列に追加され、このposition に到達し、その後にstr が続きます。

[since 6.0] QString &QString::insert(qsizetype position, QStringView str)

この関数はinsert()をオーバーロードする。

与えられたインデックスposition に文字列ビューstr を挿入し、この文字列への参照を返します。

この文字列は、挿入に合わせて大きくなります。position が文字列の終端を超えている場合、このposition に達するまで文字列にスペース文字が追加され、続いてstr が追加されます。

この関数は Qt 6.0 で導入されました。

[since 6.5] QString &QString::insert(qsizetype position, QUtf8StringView str)

この関数はinsert()をオーバーロードする。

与えられたインデックスposition に UTF-8 文字列ビューstr を挿入します。

注意: 可変幅の UTF-8 エンコード文字列データの挿入は、UTF-16 (QStringView) や Latin-1 (QLatin1StringView) のような固定幅の文字列データの挿入よりも概念的に遅いため、控えめに使用する必要があります。

この文字列は、挿入に合わせて大きくなる。position が文字列の終端を超えている場合、空白文字が文字列に追加され、このposition に到達し、続いてstr に到達します。

この関数は Qt 6.5 で導入されました。

QString &QString::insert(qsizetype position, const QByteArray &str)

この関数はinsert()をオーバーロードする。

str の内容を UTF-8 として解釈し、指定されたインデックスposition にエンコードされた Unicode 文字列を挿入し、この文字列への参照を返します。

この文字列は、挿入に合わせて大きくなります。position が文字列の終端を越えている場合、このposition に達するまで文字列にスペース文字が追加され、続いてstr が追加される。

この関数は、QT_NO_CAST_FROM_ASCII が定義されているときには利用できない。

QString &QString::insert(qsizetype position, const char *str)

この関数はinsert()をオーバーロードする。

与えられたインデックスposition に C の文字列str を挿入し、この文字列への参照を返す。

この文字列は、挿入に合わせて大きくなる。position が文字列の終端を越えている場合、文字列にスペース文字が追加され、このposition に到達し、続いてstr に到達する。

この関数は、QT_NO_CAST_FROM_ASCII が定義されているときには利用できない。

QString &QString::insert(qsizetype position, const QChar *unicode, qsizetype size)

この関数はinsert()をオーバーロードする。

文字列の指定されたインデックスposition に、QChar 配列unicode の最初のsize 文字を挿入する。

この文字列は、挿入に合わせて大きくなる。position が文字列の終端を越えている場合、このposition に達するまで文字列にスペース文字が追加され、続いてQChar 配列unicodesize 文字が追加される。

[noexcept] bool QString::isEmpty() const

文字列に文字がない場合はtrue を返し、そうでない場合はfalse を返す。

例:

QString().isEmpty();            // returns true
QString("").isEmpty();          // returns true
QString("x").isEmpty();         // returns false
QString("abc").isEmpty();       // returns false

size()も参照のこと

bool QString::isLower() const

文字列が小文字の場合、つまりtoLower() の折りたたみと同じ場合はtrue を返す。

toLowerこれは、文字列に大文字が含まれていないという意味ではないことに注意してください(大文字の中には、小文字の折りたたみを持たないものがあります。詳しくはUnicode標準の3.13節を参照してください。

QChar::toLower() およびisUpper()も参照

bool QString::isNull() const

この文字列が NULL の場合はtrue を返し、そうでない場合はfalse を返す。

QString().isNull();             // returns true
QString("").isNull();           // returns false
QString("abc").isNull();        // returns false

Qtでは、歴史的な理由から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から正常にデコードできるかどうかをチェックするだけである。データはホスト側のバイトオーダーであると仮定される。

QStringView::isValidUtf16()も参照

qsizetype QString::lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const

from文字列中の正規表現re の最後のマッチのインデックス位置を返す。

from が -1 の場合、検索は最後の文字から始まり、-2 の場合は次の文字から始まる。

re がどこにもマッチしなかった場合は -1 を返す。

マッチが成功し、rmatchnullptr でない場合、マッチの結果をrmatch が指すQRegularExpressionMatch オブジェクトにも書き込みます。

QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]"));      // returns 8

QString str = "the minimum";
QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match);      // returns 8
// match.captured() == mu

注意 : 正規表現マッチング・アルゴリズムの動作により、この関数は実際には文字列の先頭からfrom の位置に達するまで繰り返しマッチします。

注意 : 0文字にマッチする可能性のある正規表現re を検索する場合、-1 は通常文字列の末尾から検索すると考えられているにもかかわらず、from を否定することで、データの末尾のマッチは検索から除外されます: 末尾のマッチは最後の文字のなので、除外されます。このような最後の空のマッチを含めるには、from に正の値を与えるか、from パラメータを完全に省略します。

qsizetype QString::lastIndexOf(const QString &str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

インデックス位置from から後方へ検索して、この文字列の中で最後に出現した文字列str のインデックス位置を返す。

from が -1 の場合、検索は最後の文字から開始され、-2 の場合は次の文字から開始される。

str が見つからなければ -1 を返す。

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

この関数は lastIndexOf() をオーバーロードします。

この関数は Qt 6.3 で導入されました。

[since 6.2] qsizetype QString::lastIndexOf(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は lastIndexOf() をオーバーロードする。

この文字列内で最後に出現した文字列str のインデックス位置を返す。str が見つからない場合は -1 を返す。

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

この関数は Qt 6.2 で導入されました。

indexOf(),contains(),count()も参照してください

[noexcept, since 6.2] qsizetype QString::lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は lastIndexOf() をオーバーロードする。

この文字列内で最後に出現した文字列ビューstr のインデックス位置を返す。str が見つからない場合は -1 を返す。

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

この関数は Qt 6.2 で導入されました。

indexOf(),contains(),count()も参照してください

[since 6.2] qsizetype QString::lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const

この関数は lastIndexOf() をオーバーロードしたものである。

文字列中の正規表現re の最後のマッチのインデックス位置を返します。re がどこにもマッチしなかった場合は -1 を返す。

マッチに成功し、rmatchnullptr でない場合は、マッチの結果をrmatch が指すQRegularExpressionMatch オブジェクトにも書き込みます。

QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]"));      // returns 8

QString str = "the minimum";
QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match);      // returns 8
// match.captured() == mu

注意: 正規表現マッチング・アルゴリズムの動作により、この関数は実際には文字列の先頭から末尾に達するまで繰り返しマッチングを行います。

この関数はQt 6.2で導入されました。

[since 6.2] qsizetype QString::lastIndexOf(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は lastIndexOf() をオーバーロードする。

この文字列内で最後に出現した文字列str のインデックス位置を返す。str が見つからない場合は -1 を返す。

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

この関数は Qt 6.2 で導入されました。

indexOf(),contains(),count()も参照してください

qsizetype QString::lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は lastIndexOf() をオーバーロードする。

インデックス位置from から後方に検索して、この文字列内で最後に出現した文字ch のインデックス位置を返します。

qsizetype QString::lastIndexOf(QLatin1StringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は lastIndexOf() をオーバーロードする。

インデックス位置from から後方へ検索して、この文字列のstr で表示される Latin-1 文字列の最後の出現文字のインデックス位置を返します。

from が -1 の場合、検索は最後の文字から開始され、-2 の場合、次の文字から開始されます。

str が見つからなければ -1 を返す。

csQt::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] qsizetype QString::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は lastIndexOf() をオーバーロードする。

インデックス位置from から後方へ検索して、この文字列内で文字列ビューstr が最後に出現するインデックス位置を返します。

from が -1 の場合、検索は最後の文字から開始され、-2 の場合、次の文字から開始されます。

str が見つからなければ -1 を返す。

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

注意: 長さ0のstr を検索する場合、-1 は通常文字列の末尾から検索すると考えられるが、from を負にすると、データの末尾のマッチは検索から除外される。このような最後の空マッチを含めるには、from に正の値を与えるか、from パラメータを完全に省略します。

indexOf()、contains()、count()も参照のこと

QString QString::leftJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const

fill 文字でパディングされた文字列を含む、サイズwidth の文字列を返す。

truncatefalse で、文字列のsize() がwidth より大きい場合、返される文字列は文字列のコピーである。

QString s = "apple";
QString t = s.leftJustified(8, '.');    // t == "apple..."

truncatetrue で、文字列のsize() がwidth よりも大きい場合、文字列のコピーのうち、位置width 以降の文字が削除され、コピーが返される。

QString str = "Pineapple";
str = str.leftJustified(5, '.', true);    // str == "Pinea"

rightJustified()も参照のこと

[noexcept] qsizetype QString::length() const

この文字列の文字数を返す。size() と同じ。

resize()も参照

[static] int QString::localeAwareCompare(const QString &s1, const QString &s2)

s1s2 を比較し、s1s2 より小さい、等しい、または大きい場合に、ゼロより小さい、等しい、または大きい整数を返す。

比較はロケールやプラットフォームに依存した方法で行われる。この関数は、文字列をソートしたリストをユーザーに表示するために使用する。

compare()、QLocaleComparing Stringsも参照のこと

[since 6.0] int QString::localeAwareCompare(QStringView other) const

この関数は、localeAwareCompare() をオーバーロードする。

この文字列とother の文字列を比較し、この文字列がother の文字列より小さい、等しい、または大きい場合にゼロより小さい、等しい、または大きい整数を返します。

比較はロケールやプラットフォームに依存した方法で行われる。この関数は、文字列のソートされたリストをユーザに提示するために使用する。

localeAwareCompare(*this, other) と同じです。

この関数は Qt 6.0 で導入されました。

Comparing Stringsも参照してください

int QString::localeAwareCompare(const QString &other) const

この関数は、localeAwareCompare() をオーバーロードする。

この文字列とother の文字列を比較し、この文字列がother の文字列より小さい、等しい、または大きい場合にゼロより小さい、等しい、または大きい整数を返します。

比較はロケールやプラットフォームに依存した方法で行われる。この関数は、文字列のソートされたリストをユーザに提示するために使用する。

localeAwareCompare(*this, other) と同じ。

Comparing Stringsも参照のこと

[static, since 6.0] int QString::localeAwareCompare(QStringView s1, QStringView s2)

この関数は、localeAwareCompare()をオーバーロードしたものである。

s1s2 を比較し、s1s2 よりも小さい、等しい、または大きい場合に、0 よりも小さい、等しい、または大きい整数を返します。

比較はロケールやプラットフォームに依存した方法で行われる。この関数は、文字列のソートされたリストをユーザーに表示するために使用します。

この関数は Qt 6.0 で導入されました。

Comparing Stringsも参照してください

QString QString::normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const

文字列を、Unicode 標準の与えられたversion に従って、与えられた Unicode 正規化mode で返します。

[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 を表す文字列を返す。

n を表す文字列を、指定されたformat およびprecision に従ってフォーマットして返す。

指数を含む書式では、指数は符号を示し、少なくとも2桁の数字を持ち、必要であれば指数をゼロで左詰めします。

setNum()、QLocale::toString()、QLocale::FloatingPointPrecisionOptionNumber 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 、文字列データの先頭に余分なスペースを事前に確保するため、毎回文字列全体を再割り当てすることなく成長させることができるため、この操作は通常非常に高速(一定時間)です。

QString x = "ship";
QString y = "air";
x.prepend(y);
// x == "airship"

append() およびinsert()も参照の こと。

QString &QString::prepend(QChar ch)

この関数は prepend() をオーバーロードする。

文字ch をこの文字列に付加する。

QString &QString::prepend(QLatin1StringView str)

この関数は prepend() をオーバーロードする。

str で表示される Latin-1 文字列をこの文字列に追加します。

[since 6.0] QString &QString::prepend(QStringView str)

この関数は prepend() をオーバーロードする。

文字列 viewstr をこの文字列の先頭に追加し、この文字列への参照を返します。

この関数は Qt 6.0 で導入されました。

[since 6.5] QString &QString::prepend(QUtf8StringView str)

この関数は prepend() をオーバーロードする。

UTF-8 文字列ビューstr をこの文字列に追加します。

この関数は Qt 6.5 で導入されました。

QString &QString::prepend(const QByteArray &ba)

この関数は prepend() をオーバーロードする。

バイト配列ba をこの文字列に追加します。バイト配列はfromUtf8() 関数を使用して Unicode に変換されます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この関数を無効にすることができます。これは、例えば、ユーザから見える文字列がすべてQObject::tr() を通過するようにしたい場合に便利です。

QString &QString::prepend(const char *str)

この関数は prepend() をオーバーロードする。

文字列str をこの文字列に追加します。const char ポインタはfromUtf8() 関数を使用して Unicode に変換されます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この関数を無効にすることができます。これは、例えば、ユーザから見える文字列がすべてQObject::tr() を通過するようにしたい場合に便利です。

QString &QString::prepend(const QChar *str, qsizetype len)

この関数は prepend() をオーバーロードする。

QChar 配列str からlen 文字をこの文字列に追加し、この文字列への参照を返します。

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 をすべて削除し、この文字列への参照を返します。

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

QString t = "Ali Baba";
t.remove(QChar('a'), Qt::CaseInsensitive);
// t == "li Bb"

これはreplace(ch, "", cs) と同じである。

要素を削除しても、文字列の容量は維持され、割り当てられたメモリの量は減らない。余分な容量を削除し、できるだけ多くのメモリを解放するには、文字列のサイズを最後に変更した後にsqueeze() を呼び出す。

replace()も参照のこと

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

この文字列内で指定されたstr 文字列の出現箇所をすべて削除し、この文字列への参照を返す。

csQt::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 文字列のすべての出現回数を削除し、この文字列への参照を返します。

csQt::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 が真を返すすべての要素を文字列から削除します。文字列への参照を返します。

この関数は Qt 6.1 で導入されました。

remove()も参照してください

[since 6.5] QString &QString::removeLast()

文字列の最後の文字を削除する。文字列が空の場合、この関数は何もしません。

この関数は Qt 6.5 で導入されました。

remove()も参照してください

QString::reverse_iterator QString::rend()

文字列の最後の文字の直後を指すSTL 形式の逆順イテレータを返します。

警告 警告: 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。

end()、crend()、rbegin()も参照

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 x = "Say yes!";
QString y = "no";
x.replace(4, 3, y);
// x == "Say no!"

insert() およびremove()も参照のこと

QString &QString::replace(const QRegularExpression &re, const QString &after)

この関数は replace() をオーバーロードする。

文字列中の正規表現reafter で置き換えます。文字列への参照を返します。例えば

QString s = "Banana";
s.replace(QRegularExpression("a[mn]"), "ox");
// s == "Boxoxa"

例: キャプチャグループを含む正規表現では、after に出現する ˶1 ,˶2,... は、対応するキャプチャグループによってキャプチャされた文字列に置換されます。

QString t = "A <i>bon mot</i>.";
t.replace(QRegularExpression("<i>([^<]*)</i>"), "\\emph{\\1}");
// t == "A \\emph{bon mot}."

indexOf()、lastIndexOf()、remove()、QRegularExpression 、およびQRegularExpressionMatchも参照してください

QString &QString::replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は replace() をオーバーロードする。

出現する文字before をすべて文字after で置き換え、この文字列への参照を返す。

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

QString &QString::replace(QChar c, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は replace() をオーバーロードする。

出現する文字c をすべて文字列after で置き換え、この文字列への参照を返す。

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

注意: 置換後、テキストは再スキャンされません。

QString &QString::replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は replace() をオーバーロードする。

文字列中の文字chafter で置き換え、この文字列への参照を返す。

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

QString &QString::replace(QLatin1StringView before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は replace() をオーバーロードする。

この文字列内の、before で表示される Latin-1 文字列を、after で表示される Latin-1 文字列で置換し、この文字列への参照を返します。

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

注意 :置換の後、テキストは再スキャンされない。

注意 :空のbefore 引数を使用すると、文字列の各文字の前後に after 引数が挿入される。

QString &QString::replace(QLatin1StringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は replace() をオーバーロードする。

この文字列内の、before で表示される Latin-1 文字列のすべての出現回数を、文字列after で置き換え、この文字列への参照を返します。

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

注意 :置換の後、テキストは再スキャンされない。

注意 :空のbefore 引数を使用すると、文字列の各文字の前後に after 引数が挿入される。

QString &QString::replace(const QString &before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は replace() をオーバーロードする。

文字列before のすべての出現箇所を文字列after で置き換え、この文字列への参照を返す。

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

注意 :置換後、テキストは再スキャンされない。

注意 :空の引数before を使用すると、文字列の各文字の前後に引数after が挿入される。

QString &QString::replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は replace() をオーバーロードする。

文字列before のすべての出現箇所を文字列after で置き換え、この文字列への参照を返す。

csQt::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 &QString::replace(qsizetype position, qsizetype n, QChar after)

この関数は replace() をオーバーロードする。

インデックスposition で始まるn 文字をafter 文字で置き換え、この文字列への参照を返す。

QString &QString::replace(qsizetype position, qsizetype n, const QChar *after, qsizetype alen)

この関数は replace() をオーバーロードする。

インデックスposition で始まるn 文字を、QChar 配列after の最初のalen 文字で置き換え、この文字列への参照を返します。

QString &QString::replace(const QChar *before, qsizetype blen, const QChar *after, qsizetype alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)

この関数は replace() をオーバーロードする。

この文字列中のbefore の最初のblen 文字をafter の最初のalen 文字で置き換え、この文字列への参照を返す。

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

注意: before空の文字列を指している場合(つまりblen == 0)、after が指す文字列が、この文字列の各文字の前後に挿入される。

void QString::reserve(qsizetype size)

文字列が少なくともsize 文字分のスペースを持っていることを確認する。

文字列の大きさがあらかじめわかっている場合は、この関数を呼び出すことで、文字列の構築時に再割り当てを繰り返さずに済みます。これにより、文字列をインクリメンタルに構築する際のパフォーマンスを向上させることができる。文字列を追加する長い一連の操作では、何度か再割り当てが行われることがあり、その最後の再割り当てでは、必要な領域よりもかなり多くの領域が残ってしまうことがあります。これは、最初に適切なサイズの割り当てを1回行うよりも効率が悪い。

どのくらいのスペースが必要なのか疑わしい場合は、通常、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";
r.resize(t.size() + 10, 'X');
// t == "HelloXXXXXXXXXX"

[since 6.8] void QString::resizeForOverwrite(qsizetype size)

文字列のサイズをsize 文字に設定する。文字列のサイズが大きくなると、新しい文字は初期化されない。

動作はresize(size) と同じです。

この関数は Qt 6.8 で導入されました。

resize()も参照してください

QString QString::rightJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const

size()width の文字列で、fill の文字に続く文字列を返す。例えば

QString s = "apple";
QString t = s.rightJustified(8, '.');    // t == "...apple"

truncatefalse で、文字列のsize() がwidth よりも大きい場合、返される文字列は文字列のコピーである。

truncate が真で、文字列の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、一番右のフィールドから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

この関数はsection()をオーバーロードする。

この文字列は、正規表現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 バージョンを使用すると、オーバーロードされた文字列バージョンや文字バージョンよりもはるかにコストがかかります。

split() およびsimplified()も参照の こと。

QString QString::section(const QString &sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const

この関数は section() をオーバーロードする。

QString str;
QString data = "forename**middlename**surname**phone";

str = data.section("**", 2, 2); // str == "surname"
str = data.section("**", -3, -2); // str == "middlename**surname"

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)

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

指定されたformatprecision に従ってフォーマットされたn の出力値に文字列を設定し、その文字列への参照を返します。

number()、QLocale::FloatingPointPrecisionOption 、およびNumber Formatsも参照のこと

QString &QString::setNum(float n, char format = 'g', int precision = 6)

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

指定されたformatprecision に従ってフォーマットされたn の出力値に文字列を設定し、その文字列への参照を返します。

書式設定には常にQLocale::C 、つまり English/UnitedStates が使用されます。数値のローカライズされた文字列表現を取得するには、適切なロケールを指定してQLocale::toString() を使用する。

number()も参照

QString &QString::setRawData(const QChar *unicode, qsizetype size)

size 配列unicode 内の最初の Unicode キ ャ ラ ク タ を使用す る よ うQString を リ セ ッ ト し ます。unicode 内のデータはコピーされない。呼び出し元は、QString (またはその変更されていないコピー)が存在する限り、unicode が削除または変更されないことを保証できなければならない。

この関数は、fromRawData() の代わりに使用して、既存のQString オブジェクトを再利用し、メモリの再割り当てを節約することができる。

fromRawData()も参照のこと

QString &QString::setUnicode(const QChar *unicode, qsizetype size)

文字列をsize 文字にリサイズし、unicode を文字列にコピーする。

unicodenullptr の場合、何もコピーされないが、文字列はsize にリサイズされる。

unicode() およびsetUtf16()も参照のこと

QString &QString::setUtf16(const ushort *unicode, qsizetype size)

文字列をsize 文字にリサイズし、unicode を文字列にコピーする。

unicodenullptr の場合、何もコピーされないが、文字列はsize にリサイズされる。

fromUtf16() と異なり、この関数はBOMを考慮せず、バイト順序が異なる可能性があることに注意。

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()も参照してください

[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 の位置から開始するように変更し、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()も参照してください

QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

文字列を、sep が出現する部分文字列に分割し、その文字列のリストを返す。sep が文字列のどこにもマッチしない場合、 split() はこの文字列を含む単一要素のリストを返す。

cs は、 を大文字小文字を区別してマッチさせるか、大文字小文字を区別せずにマッチさせるかを指定する。sep

behaviorQt::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 = "abc";
auto parts = str.split(QString());
// parts: {"", "a", "b", "c", ""}

この動作を理解するには、空文字列はどこでもマッチすることを思い出してほしい:

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つ以上の空白文字を区切り文字として、文中の単語を抽出する例を示します:

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番目の例は、長さゼロのアサーションである\b(word boundary)を使用して、文字列を非単語トークンと単語トークンの交互のシーケンスに分割するものです:

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

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

QString str = "Bananas";
str.startsWith("Ban");     // returns true
str.startsWith("Car");     // returns false

endsWith()も参照

bool QString::startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は startsWith() をオーバーロードする。

文字列がc で始まっていればtrue を返し、そうでなければfalse を返す。

bool QString::startsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

この関数は startsWith() をオーバーロードする。

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

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

文字列が文字列ビューstr で始まっていればtrue を返し、そうでなければfalse を返す。

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

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

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

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

警告: 警告: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 &lt;QtCore&gt;"

int QString::toInt(bool *ok = nullptr, int base = 10) const

base を基数としてint に変換された文字列を返す。 はデフォルトで 10 であり、2 から 36 の間でなければならない。

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

base 文字列が "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 として返します。

返されるバイト配列は、文字列にLatin1以外の文字が含まれている場合は未定義です。これらの文字は抑制されるか、クエスチョンマークで置き換えられます。

fromLatin1()、toUtf8()、toLocal8Bit() およびQStringEncoderも参照

QByteArray QString::toLocal8Bit() const

文字列のローカル8ビット表現をQByteArray として返す。

Unix システムでは、これはtoUtf8() と等価である。Appleシステムでは、この関数はNSString.defaultCStringEncodingや CFStringGetSystemEncoding()を考慮しないことに注意してください。なぜなら、これらの関数は通常レガシーな「Western (Mac OS Roman)」エンコーディングを返すからです。Windowsでは、システムの現在のコードページが使用されます。

この文字列にローカルの8ビットエンコーディングでエンコードできない文字が含まれている場合、返されるバイト配列は未定義となる。これらの文字は抑制されるか、別の文字で置き換えられるかもしれない。

fromLocal8Bit()、toLatin1()、toUtf8()、QStringEncoderも参照のこと

long QString::toLong(bool *ok = nullptr, int base = 10) const

base を基数として、long に変換された文字列を返します。 はデフォルトで 10 であり、2 から 36 の間でなければなりません。

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

base 文字列が "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 を基数として、long long に変換された文字列を返します。 はデフォルトで 10 であり、2 から 36 の間でなければなりません。

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

base 文字列が "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 を基数として、short に変換された文字列を返します。 はデフォルトで 10 であり、2 から 36 の間でなければなりません。

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

base 文字列が "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でエンコードされます。

このメソッドは、std::wstringオブジェクトを受け付ける関数にQString

utf16()、toLatin1()、toUtf8()、toLocal8Bit()、toStdU16String()、toStdU32String()も参照のこと

uint QString::toUInt(bool *ok = nullptr, int base = 10) const

base を基数としてunsigned int に変換された文字列を返す。 はデフォルトで 10 であり、2 から 36 の間でなければならない。

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

base 文字列が "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 の間でなければならない。

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

base 文字列が "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 を基数としてunsigned long long に変換された文字列を返す。 はデフォルトで 10 であり、2 から 36 の間でなければならない。

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

base 文字列が "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 の間でなければならない。

oknullptr でない場合、失敗は *okfalse に設定することで報告され、成功は *oktrue に設定することで報告される。

base 文字列が "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 の置換文字 (U+FFFD に対応するQChar::ReplacementCharacter) で置換されます。

返されたリストは終了しません。

fromUtf8()、toUtf8()、toLatin1()、toLocal8Bit()、QStringEncoderfromUcs4()、toWCharArray()も参照のこと

QString QString::toUpper() const

文字列の大文字のコピーを返す。

QString str = "TeXt";
str = str.toUpper();        // str == "TEXT"

大文字小文字の変換は常に 'C' ロケールで行われます。ロケールに依存した大文字小文字の変換にはQLocale::toUpper() を使用します。

注意: 文字列の大文字小文字を変換すると、元の文字列よりも長くなる場合があります。

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バイト幅のプラットフォーム(ウィンドウズなど)ではUTF-16でエンコードされ、wchar_tが4バイト幅のプラットフォーム(ほとんどのUnixシステム)ではUTF-32でエンコードされる。

array は、呼び出し元によって確保され、完全な文字列を保持するのに十分な領域を含んでいなければなりません(文字列と同じ長さの配列を確保すれば常に十分です)。

この関数は、文字列の実際の長さをarray で返します。

注意: この関数は、配列にヌル文字を追加しません。

utf16()、toUcs4()、toLatin1()、toUtf8()、toLocal8Bit()、toStdWString()、QStringView::toWCharArray()も参照のこと

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 が負の場合、ゼロを渡すのと同じである。

chop()、resize()、first()、QStringView::truncate()も参照

const QChar *QString::unicode() const

文字列のUnicode表現を返します。結果は文字列が変更されるまで有効です。

注意: 返される文字列は、' \0'終端でない場合があります。配列の長さを決定するには、size() を使用します。

setUnicode()、utf16()、およびfromRawData()も参照して ください。

const ushort *QString::utf16() const

QString を '\0' 終端の符号なしショート配列として返します。この結果は、文字列が変更されるまで有効です。

返される文字列はホスト・バイト順です。

setUtf16() およびunicode()も参照してください

[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] std::u16string_view QString::operator std::u16string_view() const

このQString オブジェクトをstd::u16string_view オブジェクトに変換します。

この関数は Qt 6.7 で導入されました。

QString &QString::operator+=(const QString &other)

この文字列の末尾に文字列other を追加し、この文字列への参照を返します。

QString x = "free";
QString y = "dom";
x += y;
// x == "freedom"

なぜなら、QString は文字列データの末尾に余分なスペースをあらかじめ確保し、毎回文字列全体を再割り当てすることなく文字列を増やすことができるからである。

append() およびprepend()も参照のこと

QString &QString::operator+=(QChar ch)

この関数は operator+=() をオーバーロードする。

文字列にch を追加する。

QString &QString::operator+=(QLatin1StringView str)

この関数は operator+=() をオーバーロードする。

str で表示される Latin-1 文字列をこの文字列に追加します。

[since 6.0] QString &QString::operator+=(QStringView str)

この関数は operator+=() をオーバーロードする。

文字列ビューstr をこの文字列に追加します。

この関数は Qt 6.0 で導入されました。

[since 6.5] QString &QString::operator+=(QUtf8StringView str)

この関数は operator+=() をオーバーロードする。

UTF-8 文字列ビューstr をこの文字列に追加します。

この関数は Qt 6.5 で導入されました。

QString &QString::operator+=(const QByteArray &ba)

この関数は operator+=() をオーバーロードする。

バイト配列ba をこの文字列に追加します。バイト配列はfromUtf8() 関数を使用して Unicode に変換されます。ba バイト配列に NUL 文字 (' \0') が埋め込まれている場合、変換に含まれます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この関数を無効にできます。この関数は、たとえば、ユーザから見える文字列がすべてQObject::tr() を通過するようにしたい場合に便利です。

QString &QString::operator+=(const char *str)

この関数は operator+=() をオーバーロードする。

この文字列に文字列str を追加する。const char ポインタはfromUtf8() 関数を使用して Unicode に変換されます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この関数を無効にすることができます。これは、例えば、ユーザから見える文字列がすべてQObject::tr() を通過するようにしたい場合に便利です。

[noexcept] QString &QString::operator=(QString &&other)

Move-other をこのQString インスタンスに割り当てる。

[noexcept] QString &QString::operator=(const QString &other)

この文字列にother を代入し、この文字列への参照を返す。

QString &QString::operator=(QChar ch)

この関数は operator=() をオーバーロードする。

文字列が1文字ch を含むように設定する。

QString &QString::operator=(QLatin1StringView str)

この関数は operator=() をオーバーロードする。

この文字列にstr で見た Latin-1 文字列を代入する。

QString &QString::operator=(const QByteArray &ba)

この関数は operator=() をオーバーロードする。

この文字列にba を代入する。バイト配列はfromUtf8() 関数を使用して Unicode に変換されます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。これは、例えば、ユーザから見える文字列がすべてQObject::tr() を通るようにしたい場合に便利です。

QString &QString::operator=(const char *str)

この関数は operator=() をオーバーロードする。

この文字列にstr を代入する。const charポインタは、fromUtf8()関数を使用してUnicodeに変換されます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII またはQT_RESTRICTED_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。これは、例えば、ユーザから見える文字列がすべてQObject::tr() を通るようにしたい場合に便利です。

QChar &QString::operator[](qsizetype position)

文字列内の指定したposition にある文字を、変更可能な参照として返します。

QString str;

if (str[0] == QChar('?'))
    str[0] = QChar('_');

at()も参照

const QChar QString::operator[](qsizetype position) const

この関数は operator[]() をオーバーロードする。

関連する非会員

QString operator+(QString &&s1, const QString &s2)

QString operator+(const QString &s1, const QString &s2)

s1s2 を連結した結果の文字列を返す。

[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)

バイト配列lhsrhs の 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)

lhsrhs と等しくなければtrue を返し、そうでなければfalse を返す。

lhs!= 0の場合、これはcompare( lhs ,rhs ) != 0 と等価である。どの文字列も、lhs が0であることと等しくないことに注意。

[noexcept] bool operator!=(const QString &lhs, const QByteArray &rhs)

この関数は operator!=() をオーバーロードします。

rhs バイト配列はQUtf8StringView に変換されます。バイト配列に NUL 文字 (' \0') が埋め込まれている場合は、変換に含まれます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にできます。これは、たとえば、ユーザが表示できるすべての文字列がQObject::tr() を通過するようにしたい場合に便利です。

[noexcept] bool operator!=(const QString &lhs, const QLatin1StringView &rhs)

文字列lhs が文字列rhs と等しくない場合はtrue を返す。そうでない場合はfalse を返す。

この関数は operator!=() をオーバーロードする。

[noexcept] bool operator!=(const QString &lhs, const char *const &rhs)

この関数はoperator!=()をオーバーロードする。

rhs const charポインタはQUtf8StringView に変換される。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。これは、たとえば、すべてのユーザー可視文字列がQObject::tr() を通過するようにしたい場合に便利です。

[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::Literals::StringLiterals;

auto str = u"hello"_s;

この関数は Qt 6.4 で導入されました。

Qt::Literals::StringLiteralsも参照してください

QString operator+(const QString &s1, const char *s2)

s1s2 を連結した結果の文字列を返す (s2QString::fromUtf8() 関数で Unicode に変換される)。

QString::fromUtf8()も参照

QString operator+(const char *s1, const QString &s2)

s1s2 を連結した結果の文字列を返す (s1QString::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)

この関数は operator<() をオーバーロードする。

lhs が字句解析的にrhs より小さい場合はtrue を返し、そうでない場合はfalse を返す。

[noexcept] bool operator<(const QString &lhs, const QByteArray &rhs)

この関数は operator<() をオーバーロードします。

rhs バイト配列がQUtf8StringView に変換されます。バイト配列に NUL 文字 (' \0') が埋め込まれている場合は、変換に含まれます。

アプリケーションをコンパイルするときに、この演算子QT_NO_CAST_FROM_ASCII を無効にすることができます。これは、ユーザが表示できる文字列がすべてQObject::tr() を通過するようにしたい場合などに便利です。

[noexcept] bool operator<(const QString &lhs, const QLatin1StringView &rhs)

この関数は operator<() をオーバーロードする。

lhs が字句解析的にrhs より小さい場合はtrue を返し、そうでない場合はfalse を返す。

[noexcept] bool operator<(const QString &lhs, const QString &rhs)

この関数は operator<() をオーバーロードする。

文字列lhs が文字列rhs よりレキシカルに小さい場合はtrue を返し、そうでない場合はfalse を返す。

Comparing Stringsも参照

[noexcept] bool operator<(const QString &lhs, const char *const &rhs)

文字列lhs が文字列rhs より語彙的に小さい場合はtrue を返す。そうでない場合はfalse を返す。

この関数は operator<() をオーバーロードする。

rhs const charポインタはQUtf8StringView に変換される。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。これは、例えば、すべてのユーザー可視文字列がQObject::tr() を通過するようにしたい場合に便利です。

QDataStream &operator<<(QDataStream &stream, const QString &string)

指定されたstream に、指定されたstring を書き込みます。

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)

この関数は operator<=() をオーバーロードする。

lhs が字句解析的にrhs 以下であればtrue を返し、そうでなければfalse を返す。

[noexcept] bool operator<=(const QString &lhs, const QByteArray &rhs)

この関数は operator<=() をオーバーロードします。

rhs バイト配列はQUtf8StringView に変換されます。バイト配列に NUL 文字 (' \0') が埋め込まれている場合は、変換に含まれます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にできます。これは、たとえば、ユーザが表示できるすべての文字列がQObject::tr() を通過するようにしたい場合に便利です。

[noexcept] bool operator<=(const QString &lhs, const QLatin1StringView &rhs)

この関数は operator<=() をオーバーロードする。

lhs が字句解析的にrhs 以下であればtrue を返し、そうでなければfalse を返す。

[noexcept] bool operator<=(const QString &lhs, const char *const &rhs)

この関数は operator<=() をオーバーロードする。

rhs const charポインタはQUtf8StringView に変換される。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。これは、例えば、すべてのユーザー可視文字列がQObject::tr() を通過するようにしたい場合に便利です。

[noexcept] bool operator==(const QByteArray &lhs, const QString &rhs)

バイト配列lhsrhs の 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)

この関数は operator==() をオーバーロードする。

lhsrhs と等しい場合はtrue を返し、そうでない場合はfalse を返す。

[noexcept] bool operator==(const QString &lhs, const QByteArray &rhs)

この関数は operator==() をオーバーロードする。

rhs バイト配列はQUtf8StringView に変換される。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。これは、たとえば、すべてのユーザー可視文字列がQObject::tr() を通過するようにしたい場合に便利です。

文字列lhs がレキシカルにrhs と等しい場合はtrue を返す。そうでない場合はfalse を返します。

[noexcept] bool operator==(const QString &lhs, const QLatin1StringView &rhs)

この関数は operator==() をオーバーロードする。

lhsrhs と等しい場合はtrue を返し、そうでない場合はfalse を返す。

[noexcept] bool operator==(const QString &lhs, const QString &rhs)

この関数は operator==() をオーバーロードする。

文字列lhs が文字列rhs と等しい場合はtrue を返し、そうでない場合はfalse を返す。

注意: この関数は null 文字列を空文字列と同じように扱います。詳細はDistinction Between Null and Empty Strings を参照してください。

Comparing Stringsも参照

[noexcept] bool operator==(const QString &lhs, const char *const &rhs)

この関数は operator==() をオーバーロードする。

rhs const charポインタはQUtf8StringView に変換される。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。これは、たとえば、すべてのユーザー可視文字列がQObject::tr() を通過するようにしたい場合に便利です。

[noexcept] bool operator==(const char *const &lhs, const QString &rhs)

この関数は operator==() をオーバーロードする。

lhsrhs と等しい場合はtrue を返し、そうでない場合はfalse を返す。どの文字列も、lhs が 0 であることと等しくないことに注意。

lhs != 0 && compare(lhs, rhs) == 0 に等しい。

[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)

この関数は operator>() をオーバーロードする。

lhs が辞書的にrhs より大きい場合はtrue を返し、そうでない場合はfalse を返す。

[noexcept] bool operator>(const QString &lhs, const QByteArray &rhs)

この関数は operator>() をオーバーロードします。

rhs バイト配列がQUtf8StringView に変換されます。バイト配列に NUL 文字 (' \0') が埋め込まれている場合は、変換に含まれます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にできます。これは、たとえば、ユーザが表示できるすべての文字列がQObject::tr() を通過するようにしたい場合に便利です。

[noexcept] bool operator>(const QString &lhs, const QLatin1StringView &rhs)

この関数は operator>() をオーバーロードする。

lhs が辞書的にrhs より大きい場合はtrue を返し、そうでない場合はfalse を返す。

[noexcept] bool operator>(const QString &lhs, const char *const &rhs)

この関数は operator>() をオーバーロードする。

rhs const charポインタはQUtf8StringView に変換される。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができる。これは、たとえば、すべてのユーザー可視文字列がQObject::tr() を通過するようにしたい場合に便利です。

[noexcept] bool operator>=(const QByteArray &lhs, const QString &rhs)

バイト配列lhsrhs の 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)

この関数は operator>=() をオーバーロードする。

lhs が字句解析的にrhs 以上であればtrue を返し、そうでなければfalse を返す。

[noexcept] bool operator>=(const QString &lhs, const QByteArray &rhs)

この関数は operator>=() をオーバーロードします。

rhs バイト配列はQUtf8StringView に変換されます。バイト配列に NUL 文字 (' \0') が埋め込まれている場合は、変換に含まれます。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にできます。これは、たとえば、ユーザが表示できるすべての文字列がQObject::tr() を通過するようにしたい場合に便利です。

[noexcept] bool operator>=(const QString &lhs, const QLatin1StringView &rhs)

この関数は operator>=() をオーバーロードする。

lhs が字句解析的にrhs 以上であればtrue を返し、そうでなければfalse を返す。

[noexcept] bool operator>=(const QString &lhs, const char *const &rhs)

この関数は operator>=() をオーバーロードする。

rhs const charポインタはQUtf8StringView に変換される。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、この演算子を無効にすることができます。これは、たとえば、すべてのユーザー可視文字列がQObject::tr() を通過するようにしたい場合に便利です。

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 を付けてください。それ以外の場合は省略可能です。

QByteArrayLiteralも参照のこと

QT_NO_CAST_FROM_ASCII

8 ビット文字列 (char *) から Unicode QStrings への自動変換、および 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_ASCIIQT_RESTRICTED_CAST_FROM_ASCIIQT_NO_CAST_FROM_BYTEARRAYも参照のこと

QT_RESTRICTED_CAST_FROM_ASCII

ソース・リテラルや8ビット・データからunicode QStringsへのほとんどの自動変換を無効にしますが、QChar(char)QString(const char (&ch)[N] コンストラクタ、QString::operator=(const char (&ch)[N]) 代入演算子の使用を許可します。これにより、QT_NO_CAST_FROM_ASCII の型安全性の利点のほとんどが得られますが、ユーザー・コードで文字や文字列リテラルをQLatin1CharQLatin1StringView などでラップする必要はありません。

このマクロを7ビット範囲外のソース文字列、非リテラル、NUL文字が埋め込まれたリテラルと一緒に使用することは未定義です。

QT_NO_CAST_FROM_ASCII およびQT_NO_CAST_TO_ASCIIも参照してください

const char *qPrintable(const QString &str)

const char * としてstr を返す。これはstr と等価。toLocal8Bit().constData().

charポインタは、qPrintable()を使用した文の後には無効となる。これは、QString::toLocal8Bit ()によって返された配列がスコープ外になるためである。

注意: qDebug()、qInfo()、qWarning()、qCritical()、qFatal() は %s 引数が UTF-8 エンコードされていることを想定していますが、qPrintable() はローカルの 8 ビット・エンコードに変換します。したがって、文字列のロギングには qPrintable() ではなくqUtf8Printable() を使用する必要があります。

qUtf8Printable()も参照してください

const wchar_t *qUtf16Printable(const QString &str)

const ushort * としてstr を返すが、警告を避けるために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)

const char * としてstr を返す。これはstr と等価。toUtf8().constData().

charポインタは、qUtf8Printable()を使用した文の後には無効となる。これは、QString::toUtf8 ()によって返された配列がスコープ外になるためです。

qWarning("%s: %s", qUtf8Printable(key), qUtf8Printable(value));

qPrintable()、qDebug()、qInfo()、qWarning()、qCritical()、qFatal()も参照のこと

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.