QString Class
QString クラスは、Unicode 文字列を提供します。
Header: | #include <QString> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 継承メンバを含む全メンバのリスト
- 非推奨メンバー
- QStringは、暗黙的に共有されるクラスおよび文字列データのためのクラスの一部です。
このクラスは強く比較可能です。
このクラスはQChar 、QLatin1StringView 、 const char16_t * 、QStringView 、QUtf8StringView と強く比較可能です。
このクラスは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(QChar ch) | |
QString(QLatin1StringView str) | |
QString(const QByteArray &ba) | |
QString(const char *str) | |
(since 6.1) | QString(const char8_t *str) |
QString(const QChar *unicode, qsizetype size = -1) | |
QString(qsizetype size, QChar ch) | |
QString(const QString &other) | |
QString(QString &&other) | |
~QString() | |
QString & | append(const QString &str) |
QString & | append(QChar ch) |
QString & | append(QLatin1StringView str) |
(since 6.0) QString & | append(QStringView v) |
(since 6.5) QString & | append(QUtf8StringView str) |
QString & | append(const QByteArray &ba) |
QString & | append(const char *str) |
QString & | append(const QChar *str, qsizetype len) |
QString | arg(Args &&... args) const |
QString | arg(const QString &a, int fieldWidth = 0, QChar fillChar = u' ') const |
QString | arg(QChar a, int fieldWidth = 0, QChar fillChar = u' ') const |
QString | arg(QLatin1StringView a, int fieldWidth = 0, QChar fillChar = u' ') const |
QString | arg(QStringView a, int fieldWidth = 0, QChar fillChar = u' ') const |
QString | arg(char a, int fieldWidth = 0, QChar fillChar = u' ') const |
QString | arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const |
QString | arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const |
QString | arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const |
QString | arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const |
QString | arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const |
QString | arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const |
QString | arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const |
QString | arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const |
QString | arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = u' ') const |
(since 6.6) QString & | assign(QAnyStringView v) |
(since 6.6) QString & | assign(InputIterator first, InputIterator last) |
(since 6.6) QString & | assign(qsizetype n, QChar c) |
const QChar | at(qsizetype position) const |
QChar & | back() |
QChar | back() const |
QString::iterator | begin() |
QString::const_iterator | begin() const |
qsizetype | capacity() const |
QString::const_iterator | cbegin() const |
QString::const_iterator | cend() const |
void | chop(qsizetype n) |
QString | chopped(qsizetype len) && |
QString | chopped(qsizetype len) const & |
void | clear() |
int | compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
int | compare(QLatin1StringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
int | compare(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
int | compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QString::const_iterator | constBegin() const |
const QChar * | constData() const |
QString::const_iterator | constEnd() const |
bool | contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const |
bool | contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | count(const QRegularExpression &re) const |
qsizetype | count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.0) qsizetype | count(QStringView str, Qt::CaseSensitivity cs = 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 |
bool | endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | endsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.1) QString::iterator | erase(QString::const_iterator first, QString::const_iterator last) |
(since 6.5) QString::iterator | erase(QString::const_iterator it) |
QString & | fill(QChar ch, qsizetype size = -1) |
(since 6.0) QString | first(qsizetype n) && |
(since 6.0) QString | first(qsizetype n) const & |
QChar & | front() |
QChar | front() const |
qsizetype | indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const |
qsizetype | indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | indexOf(QChar ch, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QString & | insert(qsizetype position, const QString &str) |
QString & | insert(qsizetype position, QChar ch) |
QString & | insert(qsizetype position, QLatin1StringView str) |
(since 6.0) QString & | insert(qsizetype position, QStringView str) |
(since 6.5) QString & | insert(qsizetype position, QUtf8StringView str) |
QString & | insert(qsizetype position, const QByteArray &str) |
QString & | insert(qsizetype position, const char *str) |
QString & | insert(qsizetype position, const QChar *unicode, qsizetype size) |
bool | isEmpty() const |
bool | isLower() const |
bool | isNull() const |
bool | isRightToLeft() const |
bool | isUpper() const |
bool | isValidUtf16() const |
(since 6.0) QString | last(qsizetype n) && |
(since 6.0) QString | last(qsizetype n) const & |
qsizetype | lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const |
qsizetype | lastIndexOf(const QString &str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.3) qsizetype | lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
(since 6.2) qsizetype | lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const |
(since 6.2) qsizetype | lastIndexOf(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | lastIndexOf(QLatin1StringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
qsizetype | lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QString | left(qsizetype n) && |
QString | left(qsizetype n) const & |
QString | leftJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const |
qsizetype | length() const |
(since 6.0) int | localeAwareCompare(QStringView other) const |
int | localeAwareCompare(const QString &other) const |
(since 6.8) qsizetype | max_size() const |
QString | mid(qsizetype position, qsizetype n = -1) && |
QString | mid(qsizetype position, qsizetype n = -1) const & |
QString | normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const |
QString & | prepend(const QString &str) |
QString & | prepend(QChar ch) |
QString & | prepend(QLatin1StringView str) |
(since 6.0) QString & | prepend(QStringView str) |
(since 6.5) QString & | prepend(QUtf8StringView str) |
QString & | prepend(const QByteArray &ba) |
QString & | prepend(const char *str) |
QString & | prepend(const QChar *str, qsizetype len) |
void | push_back(const QString &other) |
void | push_back(QChar ch) |
void | push_front(const QString &other) |
void | push_front(QChar ch) |
QString::reverse_iterator | rbegin() |
QString::const_reverse_iterator | rbegin() const |
QString & | remove(const QRegularExpression &re) |
QString & | remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString & | remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString & | remove(qsizetype position, qsizetype n) |
QString & | remove(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
(since 6.5) QString & | removeAt(qsizetype pos) |
(since 6.5) QString & | removeFirst() |
(since 6.1) QString & | removeIf(Predicate pred) |
(since 6.5) QString & | removeLast() |
QString::reverse_iterator | rend() |
QString::const_reverse_iterator | rend() const |
QString | repeated(qsizetype times) const |
QString & | replace(qsizetype position, qsizetype n, const QString &after) |
QString & | replace(const QRegularExpression &re, const QString &after) |
QString & | replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString & | replace(QChar c, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString & | replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString & | replace(QLatin1StringView before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString & | replace(QLatin1StringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString & | replace(const QString &before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString & | replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString & | replace(qsizetype position, qsizetype n, QChar after) |
QString & | replace(qsizetype position, qsizetype n, const QChar *after, qsizetype alen) |
QString & | replace(const QChar *before, qsizetype blen, const QChar *after, qsizetype alen, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
void | reserve(qsizetype size) |
void | resize(qsizetype size) |
void | resize(qsizetype newSize, QChar fillChar) |
(since 6.8) void | resizeForOverwrite(qsizetype size) |
QString | right(qsizetype n) && |
QString | right(qsizetype n) const & |
QString | rightJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const |
QString | section(QChar sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const |
QString | section(const QRegularExpression &re, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const |
QString | section(const QString &sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const |
QString & | setNum(int n, int base = 10) |
QString & | setNum(long n, int base = 10) |
QString & | setNum(qlonglong n, int base = 10) |
QString & | setNum(qulonglong n, int base = 10) |
QString & | setNum(short n, int base = 10) |
QString & | setNum(uint n, int base = 10) |
QString & | setNum(ulong n, int base = 10) |
QString & | setNum(ushort n, int base = 10) |
QString & | setNum(double n, char format = 'g', int precision = 6) |
QString & | setNum(float n, char format = 'g', int precision = 6) |
QString & | setRawData(const QChar *unicode, qsizetype size) |
QString & | setUnicode(const QChar *unicode, qsizetype size) |
QString & | setUtf16(const ushort *unicode, qsizetype size) |
void | shrink_to_fit() |
QString | simplified() const |
qsizetype | size() const |
(since 6.8) QString & | slice(qsizetype pos, qsizetype n) |
(since 6.8) QString & | slice(qsizetype pos) |
(since 6.0) QString | sliced(qsizetype pos, qsizetype n) && |
(since 6.0) QString | sliced(qsizetype pos, qsizetype n) const & |
(since 6.0) QString | sliced(qsizetype pos) && |
(since 6.0) QString | sliced(qsizetype pos) const & |
QStringList | split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QStringList | split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const |
QStringList | split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
void | squeeze() |
bool | startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | startsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
bool | startsWith(QStringView str, Qt::CaseSensitivity cs = 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, int base = 10) const |
QByteArray | toLatin1() const |
QByteArray | toLocal8Bit() const |
long | toLong(bool *ok = nullptr, int base = 10) const |
qlonglong | toLongLong(bool *ok = nullptr, int base = 10) const |
QString | toLower() const |
NSString * | toNSString() const |
short | toShort(bool *ok = nullptr, int base = 10) const |
std::string | toStdString() const |
std::u16string | toStdU16String() const |
std::u32string | toStdU32String() const |
std::wstring | toStdWString() const |
uint | toUInt(bool *ok = nullptr, int base = 10) const |
ulong | toULong(bool *ok = nullptr, int base = 10) const |
qulonglong | toULongLong(bool *ok = nullptr, int base = 10) const |
ushort | toUShort(bool *ok = nullptr, int base = 10) const |
QList<uint> | toUcs4() const |
QString | toUpper() const |
QByteArray | toUtf8() const |
qsizetype | toWCharArray(wchar_t *array) const |
(since 6.0) auto | tokenize(Needle &&sep, Flags... flags) && |
(since 6.0) auto | tokenize(Needle &&sep, Flags... flags) const && |
(since 6.0) auto | tokenize(Needle &&sep, Flags... flags) const & |
QString | trimmed() const |
void | truncate(qsizetype position) |
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+=(QChar ch) |
QString & | operator+=(QLatin1StringView str) |
(since 6.0) QString & | operator+=(QStringView str) |
(since 6.5) QString & | operator+=(QUtf8StringView str) |
QString & | operator+=(const QByteArray &ba) |
QString & | operator+=(const char *str) |
QString & | operator=(QString &&other) |
QString & | operator=(const QString &other) |
QString & | operator=(QChar ch) |
QString & | operator=(QLatin1StringView str) |
QString & | operator=(const QByteArray &ba) |
QString & | operator=(const char *str) |
QChar & | operator[](qsizetype position) |
const QChar | operator[](qsizetype position) const |
静的パブリック・メンバー
QString | asprintf(const char *cformat, ...) |
int | compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
int | compare(QLatin1StringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
int | compare(QStringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
int | compare(const QString &s1, QLatin1StringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
int | compare(const QString &s1, QStringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
QString | fromCFString(CFStringRef string) |
(since 6.6) QString | fromEcmaString(emscripten::val jsString) |
QString | fromLatin1(const char *str, qsizetype size) |
(since 6.0) QString | fromLatin1(QByteArrayView str) |
QString | fromLatin1(const QByteArray &str) |
QString | fromLocal8Bit(const char *str, qsizetype size) |
(since 6.0) QString | fromLocal8Bit(QByteArrayView str) |
QString | fromLocal8Bit(const QByteArray &str) |
QString | fromNSString(const NSString *string) |
QString | fromRawData(const QChar *unicode, qsizetype size) |
QString | fromStdString(const std::string &str) |
QString | fromStdU16String(const std::u16string &str) |
QString | fromStdU32String(const std::u32string &str) |
QString | fromStdWString(const std::wstring &str) |
QString | fromUcs4(const char32_t *unicode, qsizetype size = -1) |
QString | fromUtf8(const char *str, qsizetype size) |
(since 6.0) QString | fromUtf8(QByteArrayView str) |
QString | fromUtf8(const QByteArray &str) |
(since 6.1) QString | fromUtf8(const char8_t *str) |
(since 6.0) QString | fromUtf8(const char8_t *str, qsizetype size) |
QString | fromUtf16(const char16_t *unicode, qsizetype size = -1) |
QString | fromWCharArray(const wchar_t *string, qsizetype size = -1) |
int | localeAwareCompare(const QString &s1, const QString &s2) |
(since 6.0) int | localeAwareCompare(QStringView s1, QStringView s2) |
(since 6.8) qsizetype | maxSize() |
QString | number(long n, int base = 10) |
QString | number(double n, char format = 'g', int precision = 6) |
QString | number(int n, int base = 10) |
QString | number(qlonglong n, int base = 10) |
QString | number(qulonglong n, int base = 10) |
QString | number(uint n, int base = 10) |
QString | number(ulong n, int base = 10) |
QString | vasprintf(const char *cformat, va_list ap) |
関連する非メンバー
(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) |
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 を使用して格納されます)。
Unicodeは、現在使われているほとんどの文字体系をサポートする国際標準です。これはUS-ASCII (ANSI X3.4-1986)とLatin-1 (ISO 8859-1)のスーパーセットで、US-ASCII/Latin-1文字はすべて同じコード位置で使用できます。
舞台裏では、QStringは暗黙の共有(copy-on-write)を使用してメモリ使用量を削減し、不要なデータのコピーを回避しています。これは、8ビット文字の代わりに16ビット文字を格納する固有のオーバーヘッドを削減するのにも役立ちます。
QString に加えて、Qt ではQByteArray クラスも提供しており、生のバイトや従来の 8 ビット '⊖0' 終端の文字列を格納できます。ほとんどの場合、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の配列として提供することもできます:
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() 関数を使用できます:
QString str; for (qsizetype i = 0; i < str.size(); ++i) { if (str.at(i) >= QChar('a') && str.at(i) <= QChar('f')) qDebug() << "Found character in range [a-f]"; }
at ()関数は、ディープ・コピーが発生しないため、operator[] ()関数よりも高速に処理できます。また、first()、last()、sliced() 関数を使用して、一度に複数の文字を抽出することもできます。
QString は ' \0' 文字を埋め込むことができます (QChar::Null)。size() 関数は常に、埋め込まれた ' \0' 文字を含む文字列全体のサイズを返します。
resize() 関数を呼び出した後、新しく割り当てられた文字は未定義の値になります。文字列内のすべての文字を特定の値に設定するには、fill() 関数を使用します。
QStringには、文字列の使い方を簡単にするためのオーバーロードが多数用意されています。例えば、QStringと文字列リテラルを比較したい場合、次のようなコードを書けば期待通りに動作します:
QString str; if (str == "auto" || str == "extern" || str == "static" || str == "register") { // ... }
また、QString(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を返す。例えば、特定の部分文字列の出現回数をすべて検索する典型的なループを以下に示す:
QString str = "We must be <b>bold</b>, very <b>bold</b>"; qsizetype j = 0; while ((j = str.indexOf("<b>", j)) != -1) { qDebug() << "Found <b> tag at index position" << j; ++j; }
QStringには、数値を文字列に、文字列を数値に変換する関数が多数用意されている。arg ()関数、setNum ()関数、number ()静的関数、toInt ()、toDouble ()、および同様の関数を参照してください。
文字列の大文字または小文字を取得するには、toUpper() またはtoLower() を使用する。
文字列のリストはQStringList 。split ()関数を使用すると、文字列を文字列のリストに分割できます。また、QStringList::join ()関数を使用すると、文字列のリストを任意の区切り文字を使用して1つの文字列に結合できます。文字列リストから、特定の部分文字列を含むエントリや、特定のQRegularExpression にマッチするエントリを選択することで、フィルタリングされたリストを取得できます。詳細はQStringList::filter() を参照。
文字列データのクエリ
QString が特定の部分文字列で始まるか終わるかを調べるには、startsWith() またはendsWith() を使用します。QString に特定の文字または部分文字列が含まれているかどうかを調べるには、contains() 関数を使用します。文字列内で特定の文字や部分文字列が何回出現するかを調べるには、 count() を使用します。
実際の文字データへのポインタを取得するには、data() またはconstData() を呼び出します。これらの関数は、QChar データの先頭へのポインタを返す。このポインタは、const
以外の関数が QString に対して呼び出されるまで有効であることが保証されています。
文字列の比較
QString は、operator<()、operator<=()、operator==()、operator>=() などのオーバーロードされた演算子を使用して比較することができます。比較は、UTF-16コードユニットのシーケンスとして見られる、2つの文字列の辞書順に基づいてのみ行われます。このような比較が可能な場合、ユーザーインターフェースの文字列のソートには、通常QString::localeAwareCompare() 関数の方が適しています。
QtがICUライブラリとリンクされている場合(通常はリンクされている)、ICUライブラリのロケール対応ソートが使用されます。そうでない場合は、プラットフォーム固有のソリューションが使用されます:
- Windowsでは、localeAwareCompare ()は、Control Panel のregional とlanguage オプション部で設定された現在のユーザー・ロケールを使用します。
- 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; }
|
ヌル文字列と空文字列の区別
歴史的な理由から、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 に代入されるまで延期されます。この時点で、最終的な結果に必要なメモリの量はわかっている。その後、メモリ・アロケータを'%'
'+'
'%'
一度呼び出して必要な領域を確保し、そこに部分文字列を一つずつコピーしていく。
インライン化と参照カウントの削減により、さらなる効率化が図られている(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
QString::const_iterator の Qt 形式のシノニム。
QString::Iterator
QString::iterator の Qt-style synonym。
enum QString::NormalizationForm
この列挙型は、Unicode テキストのさまざまな正規化形式を記述します。
定数 | 値 | 説明 |
---|---|---|
QString::NormalizationForm_D | 0 | 正準分解 |
QString::NormalizationForm_C | 1 | 正準分解に続く正準合成 |
QString::NormalizationForm_KD | 2 | 互換分解 |
QString::NormalizationForm_KC | 3 | 互換分解に続く正準合成 |
normalized() およびUnicode Standard Annex #15も参照してください 。
enum QString::SectionFlag
flags QString::SectionFlags
この列挙型は、section() 関数のセパレータや空フィールドに関する動作のさまざまな側面に影響を与えるために使用できるフラグを指定します。
定数 | 値 | 説明 |
---|---|---|
QString::SectionDefault | 0x00 | 空のフィールドはカウントされ、先頭と末尾のセパレータは含まれず、セパレータは大文字と小文字を区別して比較されます。 |
QString::SectionSkipEmpty | 0x01 | 空のフィールドは存在しないものとして扱われます。 |
QString::SectionIncludeLeadingSep | 0x02 | もしあれば)先頭のセパレータを結果文字列に含める。 |
QString::SectionIncludeTrailingSep | 0x04 | もしあれば)末尾のセパレータも結果文字列に含める。 |
QString::SectionCaseInsensitiveSeps | 0x08 | セパレーターは大文字と小文字を区別せずに比較する。 |
SectionFlags 型はQFlags<SectionFlag> の typedef である。セクションフラグの値の OR の組み合わせを格納する。
section()も参照の こと。
QString::const_iterator
QString::iterator も参照 。
QString::const_pointer
QString::const_pointer typedef は、QString 要素への STL スタイルの const ポインタを提供する (QChar)。
QString::const_reference
QString::const_reverse_iterator
QString::reverse_iterator およびQString::const_iterator も参照して ください。
QString::difference_type
QString::iterator
QString::const_iterator も参照 .
QString::pointer
QString::pointer typedef は、QString 要素への STL スタイルのポインタを提供します (QChar)。
QString::reference
QString::reverse_iterator
QString::const_reverse_iterator およびQString::iterator も参照して ください。
QString::size_type
QString::value_type
メンバ関数の説明
文字列のn 左端の文字を含む部分文字列を返します。
n が範囲外であってはならないことが分かっている場合、新しいコードではfirst() を代わりに使用する。
n がsize() より大きいか等しいか、ゼロより小さい場合は、文字列全体が返される。
first()、last()、startsWith()、chopped()、chop()、truncate()も参照 。
文字列の最右端の文字n を含む部分文字列を返します。
n が範囲外であってはならないことがわかっている場合、新しいコードではlast() を代わりに使用する。
n がsize() より大きいか等しいか、ゼロより小さい場合は、文字列全体が返される。
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 &
この文字列のn 文字を含む文字列を、指定したposition インデックスから返します。
position とn が範囲外であってはならないことが分かっている場合、新しいコードでは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() の場合の動作は未定義です。
この関数は 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() の場合の動作は未定義です。
この関数は 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()も参照してください 。
この文字列の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)が有効になっていなくても動作します。
sep とflags がどのように相互作用して結果を形成するかについては、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::declar<QString>(), std::forward<Needle>(needle), flags...)" が true の場合、例外をスローしません。
注意: (2) は "noexcept(qTokenize(std::declval<const QString &>(), std::forward<Needle>(needle), flags...)" が真ならば例外を投げません。
注意: "noexcept(qTokenize(std::declval<const QString>(), std::forward<Needle>(needle), flags...)" が真である場合、(3) は例外をスローしません。
QStringTokenizer およびqTokenize()も参照してください 。
[constexpr noexcept]
QString::QString()
ヌル文字列を構築します。ヌル文字列も空文字列とみなされます。
isEmpty()、isNull()、Distinction Between Null and Empty Stringsも参照 。
QString::QString(QChar ch)
文字ch を含むサイズ 1 の文字列を構築します。
QString::QString(QLatin1StringView str)
str で表示される Latin-1 文字列のコピーを構築します。
fromLatin1()も参照 。
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は文字列データのディープコピーを作成します。unicode データはそのままコピーされ、Byte Order Mark がある場合は保持されます。
fromRawData()も参照してください 。
QString::QString(qsizetype size, QChar ch)
すべての文字がch に設定された、指定されたsize の文字列を構築します。
fill()も参照 。
[noexcept]
QString::QString(const QString &other)
other のコピーを構築する。
QString は暗黙的に共有されるため、この操作には一定の時間がかかります。これにより、関数から QString を返すのが非常に高速になります。共有インスタンスが変更された場合、そのインスタンスはコピーされ(copy-on-write)、それには線形時間がかかります。
operator=()も参照してください 。
[noexcept]
QString::QString(QString &&other)
Move-QStringインスタンスを構築し、other が指していたのと同じオブジェクトを指すようにします。
[noexcept]
QString::~QString()
文字列を破棄します。
QString &QString::append(const QString &str)
この文字列の末尾に文字列str を追加します。
例
これは、insert() 関数を使用するのと同じです:
x.insert(x.size(), y);
append()関数は通常、非常に高速(一定時間)である。これは、QString が文字列データの末尾に余分なスペースをあらかじめ割り当てているため、毎回文字列全体を再割り当てすることなく文字列を増やすことができるからである。
operator+=()、prepend()、insert()も参照の こと。
QString &QString::append(QChar ch)
この関数は 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 、すなわち%1
、%2
、...、%99
で表示される Latin-1 文字列で、最下位の番号のプレースマーカーを置き換えたこの文字列のコピーを返します。
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
を置き換える。
arg()をasprintf()よりも使用する利点の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 は、指定されたformat とprecision に従ってフォーマットされる。詳細はFloating-point Formats を参照。
fieldWidth は、 がパディングされ、文字 で埋められるスペースの最小量を指定する。正の値を指定すると右寄せテキストになり、負の値を指定すると左寄せテキストになります。a fillChar
double d = 12.34; QString str = QString("delta: %1").arg(d, 0, 'E', 3); // str == "delta: 1.234E+01"
QLocale::toString()、QLocale::FloatingPointPrecisionOption 、Number Formatsも参照 。
[static]
QString QString::asprintf(const char *cformat, ...)
書式文字列cformat と任意の引数リストから書式付き文字列を安全に構築する。
書式文字列は、標準C++ライブラリのprintf()が提供する変換指定子、長さ修飾子、フラグをサポートしています。cformat 文字列と%s
引数は、UTF-8エンコードされていなければならない。
注: %lc
エスケープ・シーケンスは、char16_t
、またはushort
(QChar::unicode ()によって返される)型の unicode 文字を想定している。%ls
エスケープ・シーケンスでは、char16_t
、または ushort 型(QString::utf16() が返す)のユニコード文字のゼロ終端配列へのポインタを想定している。これは、標準C++ライブラリのprintf()が%lc
をwchar_t、%ls
をwchar_t*
と定義していることと矛盾しており、wchar_t
のサイズが16ビットでないプラットフォームではコンパイラの警告が発生する可能性があります。
警告: 警告:新しい Qt コードで QString::asprintf() を使うことはお勧めしません。代わりに、QTextStream またはarg() を使用することを検討してください。これらはどちらも Unicode 文字列をシームレスにサポートし、型安全です。以下はQTextStream を使用した例です:
QString result; QTextStream(&result) << "pi = " << 3.14; // result == "pi = 3.14"
translations の場合、特に文字列に複数のエスケープシーケンスが含まれる場合は、代わりにarg() 関数の使用を検討する必要があります。これにより、置換の順序をトランスレータが制御できるようになります。
arg()も参照してください 。
[since 6.6]
QString &QString::assign(QAnyStringView v)
この文字列の内容をv のコピーで置き換え、この文字列への参照を返します。
この文字列のサイズは、v.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エンコードされていない入力の場合は、結果の文字列の可能な最大サイズが、この文字列の容量を超える場合、またはこの文字列が共有されている場合にのみ、メモリを割り当てます。
注意: この関数のオーバーロードは、InputIterator
がLegacyInputIteratorの要件を満たし、InputIterator
のvalue_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)
この文字列の内容をc のn コピーで置き換え、この文字列への参照を返します。
この文字列のサイズはn に等しく、負でない必要があります。
この関数は、n がこの文字列の容量を超えるか、この文字列が共有されている場合にのみ、メモリを割り当てます。
この関数は Qt 6.6 で導入されました。
fill()も参照してください 。
const QChar QString::at(qsizetype position) const
文字列内の指定されたインデックスposition にある文字を返します。
position は、文字列内の有効なインデックス位置でなければなりません (すなわち、0 <=position <size())。
operator[]()も参照のこと 。
QChar &QString::back()
文字列の最後の文字への参照を返します。operator[](size() - 1)
と同じ。
この関数は STL との互換性のために提供されている。
警告: 空の文字列に対してこの関数を呼び出すと、未定義の動作になります。
front()、at()、およびoperator[]()も参照してください 。
QChar QString::back() const
文字列の最後の文字を返します。at(size() - 1)
と同じ。
この関数は STL との互換性のために提供されています。
警告: 空の文字列に対してこの関数を呼び出すと、未定義の動作になります。
front()、at()、operator[]()も参照 。
QString::iterator QString::begin()
文字列の最初の文字を指すSTL 形式のイテレータを返します。
警告: 警告: 返されたイテレータは、切り離されたとき、またはQString が変更されたときに無効になります。
constBegin() およびend()も参照 。
QString::const_iterator QString::begin() const
この関数は begin() をオーバーロードする。
qsizetype QString::capacity() const
再割り当てを強制せずに文字列に格納できる最大文字数を返します。
この関数の唯一の目的は、QString のメモリ使用量を微調整する手段を提供することである。一般に、この関数を呼び出す必要はほとんどないだろう。文字列内の文字数を知りたい場合は、size() を呼び出す。
注意: 静的に確保された文字列は、それが空でなくても容量が0であることを報告します。
注意 :割り当てられたメモリ・ブロック内の空き領域の位置は未定義である。つまり、空きメモリが常に初期化された要素の後に位置すると仮定してはならない。
QString::const_iterator QString::cbegin() const
文字列の最初の文字を指すSTLスタイルのイテレータを返します。
警告: 警告: 返されたイテレータは、デタッチ時またはQString が変更されると無効になります。
QString::const_iterator QString::cend() const
文字列の最後の文字の直後を指すconstSTL 形式のイテレータを返します。
警告: 警告: 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。
void QString::chop(qsizetype n)
文字列の末尾からn 文字を削除する。
n がsize() 以上の場合、結果は空文字列となる。n が負の場合、ゼロを渡すのと同じである。
例
QString str("LOGOUT\r\n"); str.chop(2); // str == "LOGOUT"
文字列の先頭から文字を削除したい場合は、代わりにremove() を使用する。
truncate()、resize()、remove()、QStringView::chop()も参照 。
void QString::clear()
文字列の内容を消去し、NULLにします。
[static noexcept]
int QString::compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
文字列s1 と文字列s2 を比較し、s1 がs2 より小さい場合は 負の整数、s2 より大きい場合は正の整数、等しい場合は 0 を返す。
cs がQt::CaseSensitive の場合(デフォルト)、比較は大文字小文字を区別する。
大文字小文字を区別する比較は、文字のUnicodeの数値のみに基づいており、非常に高速ですが、人間が期待するものではありません。localeAwareCompare ()を使用して、ユーザが見える文字列をソートすることを検討してください。
int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive); // x == 0 int y = QString::compare("auto", "Car", Qt::CaseSensitive); // y > 0 int z = QString::compare("auto", "Car", Qt::CaseInsensitive); // z < 0
注意: この関数は null 文字列を空文字列と同じように扱います。詳細はDistinction Between Null and Empty Strings を参照してください。
operator==()、operator<()、operator>()、Comparing Stringsも参照のこと 。
[noexcept]
int QString::compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この関数は 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 を使用して、this とs との比較を実行します。
[noexcept]
int QString::compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この関数は compare() をオーバーロードします。
この文字列と文字列other をレキシカルに比較し、この文字列がother より小さい場合は負の整数を、other より大きい場合は正の整数を、等しい場合は 0 を返します。
compare(*this,other,cs) と同じ。
[static noexcept]
int QString::compare(QLatin1StringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は compare() をオーバーロードする。
大文字小文字を区別する設定cs を使用して、s1 とs2 の比較を実行します。
[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 を使用して、s1 とs2 の比較を実行します。
[static noexcept]
int QString::compare(const QString &s1, QStringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は compare() をオーバーロードします。
QString::const_iterator QString::constBegin() const
文字列の最初の文字を指すconstSTL 形式のイテレータを返します。
警告 警告: 返されたイテレータは、切り離されたとき、またはQString が変更されたときに無効になります。
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
を返します。
マッチに成功し、rmatch がnullptr
でない場合は、マッチの結果をrmatch が指すQRegularExpressionMatch オブジェクトに書き込みます。
QRegularExpression::match()も参照のこと 。
bool QString::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列に文字列str が含まれている場合はtrue
を返し、そうでない場合はfalse
を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
例
QString str = "Peter Pan"; str.contains("peter", Qt::CaseInsensitive); // returns true
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
を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字小文字を区別します。
qsizetype QString::count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この文字列内で、str という文字列が (重複して出現する可能性がある) 回数を返します。
cs がQt::CaseSensitive (デフォルト) の場合は大文字小文字を区別し、それ以外の場合は区別しない。
contains() およびindexOf()も参照のこと 。
qsizetype QString::count(const QRegularExpression &re) const
この関数は 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 の出現回数を返します。
cs がQt::CaseSensitive の場合(デフォルト)、大文字小文字を区別して検索します。
[since 6.0]
qsizetype QString::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この関数は count() をオーバーロードしたものである。
この文字列内の文字列ビューstr の(重複する可能性のある)出現回数を返す。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
この関数は Qt 6.0 で導入されました。
contains() およびindexOf()も参照してください 。
QString::const_reverse_iterator QString::crbegin() const
文字列の最初の文字を逆順で指すconstSTL 形式の逆順イテレータを返します。
警告 警告: 返されたイテレータは、デタッチ時またはQString が変更されたときに無効になります。
QString::const_reverse_iterator QString::crend() const
文字列の最後の文字の直後を指すconstSTL 形式の逆順イテレータを返します。
警告: 警告: 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。
QChar *QString::data()
QString に格納されたデータへのポインタを返します。このポインタを使用して、文字列を構成する文字にアクセ スしたり、変更したりすることができます。
constData() およびunicode() と異なり、返されるデータは常に ' \0' 終端です。
例
QString str = "Hello world"; QChar *data = str.data(); while (!data->isNull()) { qDebug() << data->unicode(); ++data; }
例:ポインタは、文字列が他の手段で変更されない限り有効であることに注意。読み取り専用アクセスでは、constData() の方がディープコピーが発生しないため高速です。
constData() およびoperator[]()も参照の こと。
const QChar *QString::data() const
これはオーバーロードされた関数である。
注意: 返される文字列は、' \0'終端でない場合があります。配列の長さを決定するには、size() を使用します。
fromRawData()も参照してください 。
QString::iterator QString::end()
文字列の最後の文字の直後を指すSTL 形式のイテレータを返します。
警告: 警告: 返されたイテレータは、切り離されたときやQString が変更されたときに無効になります。
QString::const_iterator QString::end() const
この関数は end() をオーバーロードする。
bool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
文字列がs で終わっていればtrue
を返し、そうでなければfalse
を返す。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
QString str = "Bananas"; str.endsWith("anas"); // returns true str.endsWith("pple"); // returns 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
を返します。
cs がQt::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 文字列 jsString をQString に変換します。提供されたパラメータが文字列でない場合、動作は未定義です。
この関数は Qt 6.6 で導入されました。
toEcmaString()も参照してください 。
[static]
QString QString::fromLatin1(const char *str, qsizetype size)
Latin-1 文字列str の最初のsize 文字で初期化されたQString を返します。
size が-1
の場合は、strlen(str)
が代わりに使われます。
toLatin1()、fromUtf8()、fromLocal8Bit() も参照 。
[static, since 6.0]
QString QString::fromLatin1(QByteArrayView str)
これはオーバーロードされた関数です。
Latin-1 文字列str で初期化されたQString を返します。
注意: : バイト配列内のヌル('˶'˶')バイトは、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 文字列のコピーを返します。指定された文字列は UCS-4 でエンコードされているものとし、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 (ISO-10646-UCS-4 エンコード) の最初のsize 文字で初期化されたQString を返します。
size が -1 (デフォルト) の場合、unicode は \0'- 終端でなければなりません。
toUcs4()、fromUtf16()、utf16()、setUtf16()、fromWCharArray()、およびfromStdU32String()も参照してください 。
[static]
QString QString::fromUtf8(const char *str, qsizetype size)
UTF-8 文字列str の最初のsize バイトで初期化されたQString を返す。
size が-1
の場合、代わりにstrlen(str)
が使用されます。
UTF-8はUnicodeコーデックであり、QString のようなUnicode文字列のすべての文字を表現することができます。 しかし、UTF-8では無効なシーケンスが可能であり、そのようなものが見つかった場合、1つ以上の「置換文字」で置き換えられるか、抑制されます。これらには、非Unicodeシーケンス、非文字、オーバーロングシーケンス、UTF-8にエンコードされたサロゲートコードポイントが含まれます。
この関数は、すべてのUTF-8文字が受信データ内で終了している限り、受信データをインクリメンタルに処理するために使用することができる。文字列の末尾にある終了していない文字は、置換または抑制される。ステートフルなデコードを行うには、QStringDecoder を使用してください。
toUtf8()、fromLatin1()、fromLocal8Bit()も参照の こと。
[static, since 6.0]
QString QString::fromUtf8(QByteArrayView str)
これはオーバーロードされた関数です。
UTF-8 文字列str で初期化されたQString を返します。
注意: : バイト配列内のヌル('˶'˶')バイトは、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'-terminated でなければなりません。
この関数は、バイトオーダーマーク(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 string のエンコーディングは wchar のサイズに依存します。wcharが4バイトの場合、 はUCS-4として解釈され、wcharが2バイトの場合はUTF-16として解釈される。string
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 を返す。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
例
QString x = "sticky question"; QString y = "sti"; x.indexOf(y); // returns 0 x.indexOf(y, 1); // returns 10 x.indexOf(y, 10); // returns 10 x.indexOf(y, 11); // returns -1
例:from が -1 の場合、検索は最後の文字から始まり、-2 の場合、最後から次の文字から始まる。
lastIndexOf()、contains()、count()も参照 。
qsizetype QString::indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const
インデックス位置from から前方へ検索し、文字列内で最初にマッチした正規表現re のインデックス位置を返す。re がどこにもマッチしなかった場合は -1 を返す。
マッチに成功し、rmatch がnullptr
でない場合は、マッチの結果を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
インデックス位置from から前方を検索して、この文字列内で最初に出現する文字列str のインデックス位置を返します。str が見つからない場合は -1 を返す。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
例
QString x = "sticky question"; QString y = "sti"; x.indexOf(y); // returns 0 x.indexOf(y, 1); // returns 10 x.indexOf(y, 10); // returns 10 x.indexOf(y, 11); // returns -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 を返す。
cs がQt::CaseSensitive (デフォルト) の場合、検索は大文字小文字を区別します。
from が -1 の場合、検索は最後の文字から開始され、-2 の場合は次の文字から開始される。
QStringView::indexOf()、lastIndexOf()、contains()、count()も参照のこと 。
QString &QString::insert(qsizetype position, const QString &str)
指定されたインデックスposition に文字列str を挿入し、この文字列への参照を返します。
例
例:この文字列は、挿入に合わせて大きくなる。position が文字列の終端を越えている場合、文字列にスペース文字が追加され、このposition に到達し、続いてstr に到達する。
append(),prepend(),replace(),remove()も参照のこと 。
QString &QString::insert(qsizetype position, QChar ch)
この関数は insert() をオーバーロードしたものである。
文字列の指定されたインデックスposition にch を挿入する。
この文字列は、挿入に合わせて大きくなる。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 配列unicode のsize 文字が追加される。
[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 を返す。
マッチが成功し、rmatch がnullptr
でない場合、マッチの結果を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 を返す。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字小文字を区別する。
例
QString x = "crazy azimuths"; QString y = "az"; x.lastIndexOf(y); // returns 6 x.lastIndexOf(y, 6); // returns 6 x.lastIndexOf(y, 5); // returns 2 x.lastIndexOf(y, 1); // returns -1
注意: 長さ0のstr を検索する場合、-1
は通常、文字列の最後から検索すると考えられているにもかかわらず、from の負数によって、データの最後のマッチが検索から除外されます:最後のマッチは最後の文字の後なので、除外されます。このような最後の空のマッチを含めるには、from に正の値を与えるか、from パラメータを完全に省略します。
indexOf()、contains()、count()も参照のこと 。
[noexcept, since 6.3]
qsizetype QString::lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この関数は lastIndexOf() をオーバーロードしています。
この関数は Qt 6.3 で導入されました。
[since 6.2]
qsizetype QString::lastIndexOf(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この関数は lastIndexOf() をオーバーロードします。
この文字列内で最後に出現した文字列str のインデックス位置を返します。str が見つからない場合は -1 を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
例
QString x = "crazy azimuths"; QString y = "az"; x.lastIndexOf(y); // returns 6 x.lastIndexOf(y, 6); // returns 6 x.lastIndexOf(y, 5); // returns 2 x.lastIndexOf(y, 1); // returns -1
この関数は 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 を返す。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
この関数は Qt 6.2 で導入されました。
indexOf(),contains(),count()も参照してください 。
[since 6.2]
qsizetype QString::lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
この関数は lastIndexOf() をオーバーロードしています。
文字列内で最後にマッチした正規表現re のインデックス位置を返します。re がどこにもマッチしなかった場合は -1 を返す。
マッチが成功し、rmatch がnullptr
でない場合は、マッチの結果を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 を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
例
QString x = "crazy azimuths"; QString y = "az"; x.lastIndexOf(y); // returns 6 x.lastIndexOf(y, 6); // returns 6 x.lastIndexOf(y, 5); // returns 2 x.lastIndexOf(y, 1); // returns -1
この関数は 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 を返す。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字小文字を区別する。
例
QString x = "crazy azimuths"; QString y = "az"; x.lastIndexOf(y); // returns 6 x.lastIndexOf(y, 6); // returns 6 x.lastIndexOf(y, 5); // returns 2 x.lastIndexOf(y, 1); // returns -1
注意: 長さ0のstr を検索する場合、-1
は通常、文字列の最後から検索すると考えられているにもかかわらず、from の負数によって、データの最後のマッチが検索から除外されます:最後のマッチは最後の文字の後なので、除外されます。このような最後の空のマッチを含めるには、from に正の値を与えるか、from パラメータを完全に省略します。
indexOf()、contains()、count()も参照のこと 。
[noexcept]
qsizetype QString::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
この関数は lastIndexOf() をオーバーロードする。
インデックス位置from から後方へ検索して、この文字列内で文字列ビューstr が最後に出現するインデックス位置を返します。
from が -1 の場合、検索は最後の文字から開始され、-2 の場合、最後から次の文字から開始されます。
str が見つからなければ -1 を返す。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字小文字を区別する。
注意: 長さ0のstr を検索する場合、-1
は通常文字列の末尾から検索すると考えられるが、from を負にすると、データの末尾にあるマッチは検索から除外される。このような最後の空のマッチを含めるには、from に正の値を与えるか、from パラメータを完全に省略します。
indexOf()、contains()、count()も参照 。
QString QString::leftJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const
fill 文字でパディングされた文字列を含む、サイズwidth の文字列を返す。
truncate がfalse
で、文字列のsize() がwidth より大きい場合、返される文字列はその文字列のコピーである。
truncate がtrue
で、文字列の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)
s1 とs2 を比較し、s1 がs2 より小さい、等しい、または大きい場合に、0 より小さい、等しい、または大きい整数を返す。
比較はロケールやプラットフォームに依存した方法で行われる。この関数は、文字列をソートしたリストをユーザーに表示するために使用する。
compare()、QLocale 、Comparing Stringsも参照 。
[since 6.0]
int QString::localeAwareCompare(QStringView other) const
この関数は、localeAwareCompare() をオーバーロードしたものです。
この文字列とother の文字列を比較し、この文字列がother の文字列より小さい、等しい、または大きい場合に、0 より小さい、等しい、または大きい整数を返します。
比較はロケールやプラットフォームに依存した方法で行われる。この関数は、文字列のソートされたリストをユーザに提示するために使用する。
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() をオーバーロードしたものです。
s1 とs2 を比較し、s1 がs2 より小さい、等しい、または大きい場合に、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)
数n に相当する文字列を、指定されたbase に従って返します。
基数はデフォルトで 10 で、2 から 36 の間でなければなりません。10 以外の基数の場合、n は符号なし整数として扱われます。
書式は常にQLocale::C 、つまりEnglish/UnitedStatesを使用する。地域化された数値の文字列表現を得るには、QLocale::toString() を適切なロケールとともに使用する。
long a = 63; QString s = QString::number(a, 16); // s == "3f" QString t = QString::number(a, 16).toUpper(); // t == "3F"
setNum()も参照 。
[static]
QString QString::number(double n, char format = 'g', int precision = 6)
浮動小数点数n を表す文字列を返します。
指定されたformat およびprecision に従ってフォーマットされたn を表す文字列を返します。
指数を含む書式では、指数は符号を示し、少なくとも2桁の数字を持ち、必要なら指数をゼロで左詰めします。
setNum()、QLocale::toString()、QLocale::FloatingPointPrecisionOption 、およびNumber Formatsも参照のこと 。
[static]
QString QString::number(int n, int base = 10)
これはオーバーロードされた関数である。
[static]
QString QString::number(qlonglong n, int base = 10)
これはオーバーロードされた関数である。
[static]
QString QString::number(qulonglong n, int base = 10)
これはオーバーロードされた関数である。
[static]
QString QString::number(uint n, int base = 10)
これはオーバーロードされた関数です。
[static]
QString QString::number(ulong n, int base = 10)
これはオーバーロードされた関数です。
QString &QString::prepend(const QString &str)
文字列str をこの文字列の先頭に付加し、この文字列への参照を返す。
QString 、文字列データの先頭に余分なスペースをあらかじめ確保するため、毎回文字列全体を再割り当てすることなく文字列を増やすことができ、この操作は通常非常に高速(一定時間)です。
例
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() をオーバーロードする。
文字列ビューstr をこの文字列の先頭に追加し、この文字列への参照を返します。
この関数は 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 が変更されたときに無効になります。
QString::const_reverse_iterator QString::rbegin() const
これはオーバーロードされた関数です。
QString &QString::remove(const QRegularExpression &re)
文字列内の正規表現re をすべて削除し、その文字列への参照を返します。例えば
QString r = "Telephone"; r.remove(QRegularExpression("[aeiou].")); // r == "The"
要素を削除しても、文字列の容量は維持され、割り当てられたメモリの量は減りません。余分な容量を削除し、できるだけ多くのメモリを解放するには、文字列のサイズを最後に変更した後にsqueeze() を呼び出します。
indexOf()、lastIndexOf()、replace()も参照のこと 。
QString &QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この文字列内の文字ch をすべて削除し、この文字列への参照を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
例
これはreplace(ch, "", cs)
と同じである。
要素を削除しても、文字列の容量は維持され、割り当てられたメモリの量は減りません。余分な容量を削除し、できるだけ多くのメモリを解放するには、文字列のサイズを最後に変更した後にsqueeze() を呼び出す。
replace()も参照 。
QString &QString::remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この文字列内で指定されたstr 文字列をすべて削除し、この文字列への参照を返します。
cs がQt::CaseSensitive (デフォルト) の場合、検索は大文字小文字を区別して行われる。
これはreplace(str, "", cs)
と同じである。
要素を削除しても、文字列の容量は維持され、割り当てられたメモリの量は減らない。余分な容量を削除し、できるだけ多くのメモリを解放するには、文字列のサイズを最後に変更した後にsqueeze() を呼び出す。
replace()も参照のこと 。
QString &QString::remove(qsizetype position, qsizetype n)
指定されたposition インデックスから始まる文字列からn 文字を削除し、その文字列への参照を返します。
指定されたposition インデックスが文字列内にあるが、position +n が文字列の末尾を超えている場合、文字列は指定されたposition で切り捨てられる。
n が <= 0の場合、何も変更されない。
QString s = "Montreal"; s.remove(1, 4); // s == "Meal"
要素を削除しても、文字列の容量は維持され、割り当てられたメモリの量は減らない。余分な容量を削除し、できるだけ多くのメモリを解放するには、文字列のサイズを最後に変更した後にsqueeze() を呼び出す。
QString &QString::remove(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
これはオーバーロードされた関数である。
この文字列から、str によって表示された、与えられた Latin-1 文字列のすべての出現回数を削除し、この文字列への参照を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
これはreplace(str, "", cs)
と同じである。
要素を削除しても、文字列の容量は維持され、割り当てられたメモリの量は減らない。余分な容量を削除し、できるだけ多くのメモリを解放するには、文字列のサイズを最後に変更した後にsqueeze() を呼び出す。
replace()も参照のこと 。
[since 6.5]
QString &QString::removeAt(qsizetype pos)
インデックスpos にある文字を削除します。pos が範囲外の場合(つまりpos >=size() )、この関数は何もしません。
この関数は Qt 6.5 で導入されました。
remove()も参照してください 。
[since 6.5]
QString &QString::removeFirst()
文字列の最初の文字を削除します。文字列が空の場合、この関数は何もしません。
この関数は Qt 6.5 で導入されました。
remove()も参照して ください。
[since 6.1]
template <typename Predicate> QString &QString::removeIf(Predicate pred)
述語pred が真を返すすべての要素を文字列から削除します。文字列への参照を返します。
この関数は Qt 6.1 で導入されました。
remove()も参照してください 。
[since 6.5]
QString &QString::removeLast()
この文字列の最後の文字を削除します。文字列が空の場合、この関数は何もしません。
この関数は Qt 6.5 で導入されました。
remove()も参照して ください。
QString::reverse_iterator QString::rend()
文字列の最後の文字の直後を指すSTL 形式の逆順イテレータを返します。
警告 警告: 返されたイテレータは、切り離されたときや、QString が変更されたときに無効になります。
QString::const_reverse_iterator QString::rend() const
これはオーバーロードされた関数である。
QString QString::repeated(qsizetype times) const
この文字列のコピーを、指定されたtimes の数だけ繰り返して返します。
times が 1 未満の場合は、空の文字列が返されます。
例
QString str("ab"); str.repeated(4); // returns "abababab"
QString &QString::replace(qsizetype position, qsizetype n, const QString &after)
例:インデックスposition で始まるn 文字を文字列after で置き換え、この文字列への参照を返します。
注意: 指定されたposition インデックスが文字列内にあるが、position +n が文字列の範囲外にある場合、n は文字列の末尾で止まるように調整される。
例
QString &QString::replace(const QRegularExpression &re, const QString &after)
この関数は replace() をオーバーロードしたものである。
文字列内の正規表現re のすべての出現箇所をafter で置き換えます。文字列への参照を返します。例えば
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 で置き換え、この文字列への参照を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
QString &QString::replace(QChar c, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は replace() をオーバーロードする。
出現する文字c をすべて文字列after で置き換え、この文字列への参照を返す。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字小文字を区別し、そうでない場合、検索は大文字小文字を区別しない。
注意: 置換後のテキストは再スキャンされません。
QString &QString::replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は replace() をオーバーロードします。
文字列内の文字ch をafter で置き換え、この文字列への参照を返す。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
QString &QString::replace(QLatin1StringView before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は replace() をオーバーロードする。
この文字列内で、before が見ている Latin-1 文字列を、after が見ている Latin-1 文字列で置き換え、この文字列への参照を返します。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
注意 :置換の後、テキストは再スキャンされない。
注意 : 引数に空のbefore を指定すると、文字列の各文字の前後に after が挿入されます。
QString &QString::replace(QLatin1StringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は replace() をオーバーロードする。
この文字列内の、before で表示される Latin-1 文字列のすべての出現箇所を、文字列after で置き換え、この文字列への参照を返します。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字小文字を区別します。
注意 :置換の後、テキストは再スキャンされない。
注意 : 引数に空のbefore を指定すると、文字列の各文字の前後に after が挿入されます。
QString &QString::replace(const QString &before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は replace() をオーバーロードする。
文字列before のすべての出現箇所を文字列after で置換し、この文字列への参照を返す。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
注意 :置換後、テキストは再スキャンされない。
注意 : 引数に空のbefore を指定すると、文字列の各文字の前後に after が挿入されます。
QString &QString::replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
この関数は replace() をオーバーロードする。
文字列before のすべての出現箇所を文字列after で置換し、この文字列への参照を返す。
cs がQt::CaseSensitive (デフォルト)の場合、検索は大文字小文字を区別します。
例
QString str = "colour behaviour flavour neighbour"; str.replace(QString("ou"), QString("o")); // str == "color behavior flavor neighbor"
注意: 置換テキストは、挿入後に再スキャンされない。
例
QString equis = "xxxxxx"; equis.replace("xx", "x"); // equis == "xxx"
注意 :引数に空のbefore を指定すると、文字列の各文字の前後に after が挿入されます。
QString &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 文字で置き換え、この文字列への参照を返す。
cs がQt::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
fill 文字の後に文字列が続くsize()width の文字列を返します。例えば
truncate がfalse
で、文字列の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)
これはオーバーロードされた関数です。
指定されたformat とprecision に従ってフォーマットされたn の出力値に文字列を設定し、その文字列への参照を返します。
number()、QLocale::FloatingPointPrecisionOption 、およびNumber Formatsも参照のこと 。
QString &QString::setNum(float n, char format = 'g', int precision = 6)
これはオーバーロードされた関数である。
指定されたformat とprecision に従ってフォーマットされたn の出力値に文字列を設定し、その文字列への参照を返します。
書式設定には常にQLocale::C 、つまり English/UnitedStates が使用されます。数値のローカライズされた文字列表現を取得するには、適切なロケールを指定してQLocale::toString() を使用する。
number()も参照 。
QString &QString::setRawData(const QChar *unicode, qsizetype size)
QString をリセットして、配列unicode 内の最初のsize Unicode 文字を使用するようにします。unicode のデータはコピーされない。呼び出し元は、QString (またはその変更されていないコピー)が存在する限り、unicode が削除されたり変更されたりしないことを保証できなければならない。
この関数は、fromRawData() の代わりに使用して、既存のQString オブジェクトを再利用し、メモリの再割り当てを節約することができる。
fromRawData()も参照 。
QString &QString::setUnicode(const QChar *unicode, qsizetype size)
文字列をsize 文字にリサイズし、unicode を文字列にコピーする。
unicode がnullptr
の場合、何もコピーされないが、文字列はsize にリサイズされる。
unicode() およびsetUtf16()も参照のこと 。
QString &QString::setUtf16(const ushort *unicode, qsizetype size)
文字列をsize 文字にリサイズし、unicode を文字列にコピーする。
unicode がnullptr
の場合、何もコピーされないが、文字列は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'
[since 6.8]
QString &QString::slice(qsizetype pos, qsizetype n)
この文字列をpos の位置から開始するように変更し、n の文字(コード・ポイン ト)を拡張して、この文字列への参照を返します。
注意: pos < 0、n < 0、またはpos +n >size() の場合、動作は未定義です。
QString equis = "xxxxxx"; equis.replace("xx", "x"); // equis == "xxx"
この関数は 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
behavior がQt::SkipEmptyParts の場合、空のエントリは結果に現れない。デフォルトでは、空のエントリが保持されます。
例:
QString str = QStringLiteral("a,,b,c"); QStringList list1 = str.split(u','); // list1: [ "a", "", "b", "c" ] QStringList list2 = str.split(u',', Qt::SkipEmptyParts); // list2: [ "a", "b", "c" ]
例:sep が空の場合、split() は空の文字列を返し、その後に文字列の各文字を返し、さらにその後に空の文字列を返す:
この動作を理解するには、空文字列はどこでもマッチすることを思い出してほしい:
QString str = "/a/b/c/"; auto parts = str.split(u'/'); // parts: {"", "a", "b", "c", ""}
QStringList::join() およびsection()も参照の こと。
QStringList QString::split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
これはオーバーロードされた関数である。
正規表現re がマッチする箇所で文字列を部分文字列に分割し、それらの文字列のリストを返します。re が文字列のどこにもマッチしない場合、 split() はこの文字列を含む単一要素のリストを返します。
1つ以上の空白文字を区切り文字として、文中の単語を抽出する例を示します:
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
を返す。
cs がQt::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
を返す。
cs がQt::CaseSensitive の場合(デフォルト)、検索は大文字小文字を区別します。
endsWith()も参照のこと 。
[noexcept]
void QString::swap(QString &other)
文字列other をこの文字列と交換する。この操作は非常に高速で、失敗することはない。
CFStringRef QString::toCFString() const
QString から CFString を作成する。
呼び出し元は CFString を所有し、それを解放する責任があります。
注意: この関数は macOS と iOS でのみ利用可能です。
QString QString::toCaseFolded() const
大文字小文字を区別した文字列を返します。ほとんどの Unicode 文字では、これはtoLower() と同じです。
double QString::toDouble(bool *ok = nullptr) const
文字列をdouble
の値に変換して返します。
変換がオーバーフローした場合は無限大を、その他の理由(アンダーフローなど)で変換に失敗した場合は0.0を返します。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
QString str = "1234.56"; double val = str.toDouble(); // val == 1234.56
警告: 警告:QString の内容には、プラス/マイナス記号、科学的記数法で使用される文字e、および小数点を 含む、有効な数値文字のみを含めることができる。単位や付加的な文字を含むと変換エラーになります。
bool ok; double d; d = QString( "1234.56e-02" ).toDouble(&ok); // ok == true, d == 12.3456 d = QString( "1234.56e-02 Volt" ).toDouble(&ok); // ok == false, d == 0
文字列の変換は常に 'C' ロケールで行われます。ロケールに依存した変換を行うには、QLocale::toDouble() を使用する。
d = QString( "1234,56" ).toDouble(&ok); // ok == false d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56
歴史的な理由により、この関数は千単位のグループ区切り文字を扱わない。そのような数値を変換する必要がある場合は、QLocale::toDouble() を使用してください。
d = QString( "1,234,567.89" ).toDouble(&ok); // ok == false d = QString( "1234567.89" ).toDouble(&ok); // ok == true
この関数は、先頭および末尾の空白を無視します。
number()、QLocale::setDefault()、QLocale::toDouble() およびtrimmed()も参照 。
[since 6.6]
emscripten::val QString::toEcmaString() const
このオブジェクトをECMAScript 文字列に変換します。
この関数は Qt 6.6 で導入されました。
fromEcmaString()も参照してください 。
float QString::toFloat(bool *ok = nullptr) const
float
値に変換された文字列を返します。
変換がオーバーフローした場合は無限大を返し、その他の理由(アンダーフローなど)で変換に失敗した場合は0.0を返します。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
警告: 警告:QString の内容には、プラス/マイナス記号、科学的記数法で使用される文字e、および小数点を 含む、有効な数値文字のみを含めることができる。単位や付加的な文字を含むと変換エラーになります。
文字列の変換は常に 'C' ロケールで行われます。ロケールに依存した変換を行うには、QLocale::toFloat() を使用する。
歴史的な理由により、この関数は千単位のグループ区切り文字を扱わない。そのような数値を変換する必要がある場合は、QLocale::toFloat() を使用してください。
例
QString str1 = "1234.56"; str1.toFloat(); // returns 1234.56 bool ok; QString str2 = "R2D2"; str2.toFloat(&ok); // returns 0.0, sets ok to false QString str3 = "1234.56 Volt"; str3.toFloat(&ok); // returns 0.0, sets ok to false
例:この関数は、先頭および末尾の空白を無視します。
number()、toDouble()、toInt()、QLocale::toFloat()、trimmed()も参照 。
QString QString::toHtmlEscaped() const
プレーン・テキスト文字列を、HTMLメタキャラクタ<
、>
、&
、"
をHTMLエンティティに置き換えたHTML文字列に変換します。
例
QString plain = "#include <QtCore>" QString html = plain.toHtmlEscaped(); // html == "#include <QtCore>"
int QString::toInt(bool *ok = nullptr, int base = 10) const
int
base変換に失敗した場合は 0 を返します。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
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 以下の値でなければなりません。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
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
long long
base変換に失敗した場合は 0 を返します。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
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 の間でなければなりません。変換に失敗した場合は 0 を返します。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
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 の間でなければならない。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
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
unsigned long
base変換に失敗した場合は 0 を返します。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
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
unsigned long long
base変換に失敗した場合は 0 を返します。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
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
unsigned short
base変換に失敗した場合は 0 を返します。
ok がnullptr
でない場合、失敗は *ok をfalse
に設定することで報告され、成功は *ok をtrue
に設定することで報告される。
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> として返します。
UCS-4はUnicodeコーデックなのでロスレスです。この文字列のすべての文字はUCS-4でエンコードされます。この文字列内の無効なコード単位のシーケンスは、Unicode の置換文字 (U+FFFD
に対応するQChar::ReplacementCharacter) で置換されます。
返されたリストは終了しません。
fromUtf8()、toUtf8()、toLatin1()、toLocal8Bit()、QStringEncoder 、fromUcs4()、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バイト幅のプラットフォーム(windowsなど)ではUTF-16でエンコードされ、 wchar_tが4バイト幅のプラットフォーム(ほとんどのUnixシステム)ではUCS-4でエンコードされる。
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' 終端の符号なしショート配列として返します。この結果は、文字列が変更されるまで有効です。
返される文字列はホスト・バイト順です。
[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 は文字列データの末尾に余分なスペースを事前に確保するため、毎回文字列全体を再割り当てすることなく文字列を増やすことができるため、この操作は通常非常に高速(一定時間)です。
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-このQString インスタンスにother を割り当てる。
[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 にある文字を、変更可能な参照として返します。
例:
at()も参照 。
const QChar QString::operator[](qsizetype position) const
この関数は operator[]() をオーバーロードする。
関連する非会員
QString operator+(QString &&s1, const QString &s2)
QString operator+(const QString &s1, const QString &s2)
s1 とs2 を連結した結果の文字列を返す。
[since 6.1]
template <typename T> qsizetype erase(QString &s, const T &t)
文字列s から、t と等しい要素をすべて削除します。削除された要素があれば、その数を返します。
この関数は Qt 6.1 で導入されました。
erase_ifも参照してください 。
[since 6.1]
template <typename Predicate> qsizetype erase_if(QString &s, Predicate pred)
文字列s から、述語pred が真を返す要素をすべて削除します。もしあれば、削除された要素の数を返します。
この関数は Qt 6.1 で導入されました。
eraseも参照してください 。
[noexcept]
bool operator!=(const QByteArray &lhs, const QString &rhs)
バイト配列lhs がrhs の UTF-8 エンコーディングと等しくない場合はtrue
を返し、そうでない場合はfalse
を返します。
比較は大文字小文字を区別します。
アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII
を定義することで、この演算子を無効にすることができます。比較を行う前にバイト配列をQString に変換したい場合は、QString::fromUtf8()、QString::fromLatin1()、QString::fromLocal8Bit() を明示的に呼び出す必要がある。
[noexcept]
bool operator!=(const QString &lhs, const QString &rhs)
文字列lhs が文字列rhs と等しくない場合はtrue
を返し、そうでない場合はfalse
を返す。
Comparing Stringsも参照のこと 。
[noexcept]
bool operator!=(const char *const &lhs, const QString &rhs)
lhs がrhs と等しくない場合はtrue
を返し、そうでない場合はfalse
を返す。
lhs!= 0 の場合、これはcompare(
lhs ,rhs ) != 0
と等価である。どの文字列も、lhs が0であることと等しくないことに注意。
[noexcept]
bool operator!=(const QString &lhs, const QByteArray &rhs)
この関数は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() を通過するようにしたい場合に便利である。
QString operator+(const QString &s1, const char *s2)
s1 とs2 を連結した結果の文字列を返します (s2 はQString::fromUtf8() 関数を使用して Unicode に変換されます)。
QString::fromUtf8()も参照 。
QString operator+(const char *s1, const QString &s2)
s1 とs2 を連結した結果の文字列を返す (s1 はQString::fromUtf8() 関数を使用して Unicode に変換される)。
QString::fromUtf8()も参照の こと。
[noexcept]
bool operator<(const QByteArray &lhs, const QString &rhs)
バイト配列lhs がレキシカルにrhs の UTF-8 エンコードより小さい場合はtrue
を返し、そうでない場合はfalse
を返す。
比較では大文字と小文字が区別されます。
この演算子を無効にするには、アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII
を定義します。比較を行う前にバイト配列をQString に変換したい場合は、QString::fromUtf8()、QString::fromLatin1()、QString::fromLocal8Bit() を明示的に呼び出す必要がある。
[noexcept]
bool operator<(const char *const &lhs, const QString &rhs)
lhs が辞書的にrhs より小さい場合はtrue
を返し、そうでない場合はfalse
を返す。lhs!= 0 の場合、これはcompare(lhs, rhs) < 0
と等価である。
Comparing Stringsも参照のこと 。
[noexcept]
bool operator<(const QLatin1StringView &lhs, const QString &rhs)
この関数は 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)
バイト配列lhs がrhs の UTF-8 エンコードと等しい場合はtrue
を返し、そうでない場合はfalse
を返す。
比較は大文字小文字を区別する。
アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII
を定義することで、この演算子を無効にすることができます。比較を行う前にバイト配列をQString に変換したい場合は、QString::fromUtf8()、QString::fromLatin1()、QString::fromLocal8Bit() を明示的に呼び出す必要があります。
[noexcept]
bool operator==(const QLatin1StringView &lhs, const QString &rhs)
この関数は operator==() をオーバーロードしている。
lhs がrhs と等しい場合は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==() をオーバーロードする。
lhs がrhs と等しい場合は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==() をオーバーロードします。
lhs がrhs と等しい場合はtrue
を返し、そうでない場合はfalse
を返す。どの文字列も、lhs が0であることと等しくないことに注意。
lhs != 0 && compare(lhs, rhs) == 0
と等価。
[noexcept]
bool operator>(const QByteArray &lhs, const QString &rhs)
バイト配列lhs が UTF-8 エンコーディングrhs よりレキシカルに大きい場合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)
バイト配列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() を通過するようにしたい場合に便利である。
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_ASCII 、QT_RESTRICTED_CAST_FROM_ASCII 、およびQT_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 の型安全性の利点のほとんどが得られますが、ユーザー・コードで文字や文字列リテラルをQLatin1Char やQLatin1StringView などでラップする必要はありません。
このマクロを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)
str const char *
これは、str.toUtf8().constData() と等価である。
charポインタは、qUtf8Printable()を使用した文の後には無効となる。これは、QString::toUtf8 ()によって返された配列がスコープ外になるためです。
例
qWarning("%s: %s", qUtf8Printable(key), qUtf8Printable(value));
qPrintable(),qDebug(),qInfo(),qWarning(),qCritical(),qFatal()も参照してください 。
©2024The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。