Класс QString
Класс QString предоставляет строку символов Юникод. Подробнее...
| Заголовок: | #include <QString> |
| qmake: | QT += core |
Примечание: Все функции в этом классе являются перевключёнными.
Типы общедоступные
| класс | Null |
| тип | ConstIterator |
| тип | Iterator |
| перечисление | НормальнаяФорма { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC } |
| перечисление | ФлагРаздела { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps } |
| флаги | ФлагиРаздела |
| перечисление | ПоведениеРазбиения { KeepEmptyParts, SkipEmptyParts } |
| тип | const_iterator |
| тип | const_указатель |
| тип | const_ссылка |
| тип | const_обратный_итератор |
| тип | разность_типов |
| тип | итератор |
| тип | указатель |
| тип | ссылка |
| тип | обратный_итератор |
| тип | тип_размера |
| тип | тип_значения |
Общедоступные функции
| QString() | |
| QString(const QChar *unicode, int size = -1) | |
| QString(QChar ch) | |
| QString(int size, QChar ch) | |
| QString(QLatin1String str) | |
| QString(const QString &other) | |
| QString(QString &&other) | |
| QString(const char *str) | |
| QString(const QByteArray &ba) | |
| ~QString() | |
| QString & | append(const QString &str) |
| QString & | append(const QChar *str, int len) |
| QString & | append(QChar ch) |
| QString & | append(const QStringRef &reference) |
| QString & | append(QLatin1String str) |
| QString & | append(const char *str) |
| QString & | append(const QByteArray &ba) |
| QString | arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(char a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(QChar a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const |
| QString | arg(const QString &a1, const QString &a2) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8, const QString &a9) const |
| const QChar | at(int position) const |
| iterator | begin() |
| const_iterator | begin() const |
| int | capacity() const |
| const_iterator | cbegin() const |
| const_iterator | cend() const |
| void | chop(int n) |
| void | clear() |
| int | compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | compare(const QStringRef &ref, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| const_iterator | constBegin() const |
| const QChar * | constData() const |
| const_iterator | constEnd() const |
| bool | contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | contains(const QRegExp &rx) const |
| bool | contains(QRegExp &rx) const |
| bool | contains(const QRegularExpression &re) const |
| bool | contains(const QRegularExpression &re, QRegularExpressionMatch *match) const |
| int | count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | count() const |
| int | count(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | count(const QRegExp &rx) const |
| int | count(const QRegularExpression &re) const |
| const_reverse_iterator | crbegin() const |
| const_reverse_iterator | crend() const |
| QChar * | data() |
| const QChar * | data() const |
| iterator | end() |
| const_iterator | end() const |
| bool | endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QString & | fill(QChar ch, int size = -1) |
| int | indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | indexOf(const QRegExp &rx, int from = 0) const |
| int | indexOf(QRegExp &rx, int from = 0) const |
| int | indexOf(const QRegularExpression &re, int from = 0) const |
| int | indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const |
| QString & | insert(int position, const QString &str) |
| QString & | insert(int position, const QChar *unicode, int size) |
| QString & | insert(int position, QChar ch) |
| QString & | insert(int position, const QStringRef &str) |
| QString & | insert(int position, QLatin1String str) |
| QString & | insert(int position, const char *str) |
| QString & | insert(int position, const QByteArray &str) |
| bool | isEmpty() const |
| bool | isNull() const |
| bool | isRightToLeft() const |
| int | lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | lastIndexOf(const QRegExp &rx, int from = -1) const |
| int | lastIndexOf(QRegExp &rx, int from = -1) const |
| int | lastIndexOf(const QRegularExpression &re, int from = -1) const |
| int | lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const |
| QString | left(int n) const |
| QString | leftJustified(int width, QChar fill = QLatin1Char( ' ' ), bool truncate = false) const |
| QStringRef | leftRef(int n) const |
| int | length() const |
| int | localeAwareCompare(const QString &other) const |
| int | localeAwareCompare(const QStringRef &other) const |
| QString | mid(int position, int n = -1) const |
| QStringRef | midRef(int position, int n = -1) const |
| QString | normalized(NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const |
| QString & | prepend(const QString &str) |
| QString & | prepend(const QChar *str, int len) |
| QString & | prepend(QChar ch) |
| QString & | prepend(const QStringRef &str) |
| QString & | prepend(QLatin1String str) |
| QString & | prepend(const char *str) |
| QString & | prepend(const QByteArray &ba) |
| void | push_back(const QString &other) |
| void | push_back(QChar ch) |
| void | push_front(const QString &other) |
| void | push_front(QChar ch) |
| reverse_iterator | rbegin() |
| const_reverse_iterator | rbegin() const |
| QString & | remove(int position, int n) |
| QString & | remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | remove(const QRegExp &rx) |
| QString & | remove(const QRegularExpression &re) |
| reverse_iterator | rend() |
| const_reverse_iterator | rend() const |
| QString | repeated(int times) const |
| QString & | replace(int position, int n, const QString &after) |
| QString & | replace(int position, int n, const QChar *unicode, int size) |
| QString & | replace(int position, int n, QChar after) |
| QString & | replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QRegExp &rx, const QString &after) |
| QString & | replace(const QRegularExpression &re, const QString &after) |
| void | reserve(int size) |
| void | resize(int size) |
| QString | right(int n) const |
| QString | rightJustified(int width, QChar fill = QLatin1Char( ' ' ), bool truncate = false) const |
| QStringRef | rightRef(int n) const |
| QString | section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const |
| QString | section(const QString &sep, int start, int end = -1, SectionFlags flags = SectionDefault) const |
| QString | section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const |
| QString | section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const |
| QString & | setNum(int n, int base = 10) |
| QString & | setNum(ushort n, int base = 10) |
| QString & | setNum(short n, int base = 10) |
| QString & | setNum(uint n, int base = 10) |
| QString & | setNum(long n, int base = 10) |
| QString & | setNum(ulong n, int base = 10) |
| QString & | setNum(qlonglong n, int base = 10) |
| QString & | setNum(qulonglong n, int base = 10) |
| QString & | setNum(float n, char format = 'g', int precision = 6) |
| QString & | setNum(double n, char format = 'g', int precision = 6) |
| QString & | setRawData(const QChar *unicode, int size) |
| QString & | setUnicode(const QChar *unicode, int size) |
| QString & | setUtf16(const ushort *unicode, int size) |
| QString | simplified() const |
| int | размер() const |
| QStringList | разделить(const QString &sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QStringList | разделить(QChar sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QStringList | разделить(const QRegExp &rx, SplitBehavior behavior = KeepEmptyParts) const |
| QStringList | разделить(const QRegularExpression &re, SplitBehavior behavior = KeepEmptyParts) const |
| QVector<QStringRef> | разделитьСсылки(const QString &sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QVector<QStringRef> | разделитьСсылки(QChar sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QVector<QStringRef> | разделитьСсылки(const QRegExp &rx, SplitBehavior behavior = KeepEmptyParts) const |
| QVector<QStringRef> | разделитьСсылки(const QRegularExpression &re, SplitBehavior behavior = KeepEmptyParts) const |
| void | сжать() |
| bool | начинаетсяС(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | начинаетсяС(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | начинаетсяС(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | начинаетсяС(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| void | обменять(QString &other) |
| CFStringRef | toCFString() const |
| QString | кНижнемуРегиструСНизведением() const |
| double | кДвойнойТочкеПлавающей(bool *ok = Q_NULLPTR) const |
| float | кТочкеПлавающей(bool *ok = Q_NULLPTR) const |
| QString | кHTMLЭкранированному() const |
| int | кЦеломуЧислу(bool *ok = Q_NULLPTR, int base = 10) const |
| QByteArray | кLatin1() const |
| QByteArray | кЛокальной8Бит() const |
| long | кДолгому(bool *ok = Q_NULLPTR, int base = 10) const |
| qlonglong | кДолгомуДолгому(bool *ok = Q_NULLPTR, int base = 10) const |
| QString | кНижнемуРегистру() const |
| NSString * | toNSString() const |
| short | кКоротому(bool *ok = Q_NULLPTR, int base = 10) const |
| std::string | toStdString() const |
| std::u16string | toStdU16String() const |
| std::u32string | toStdU32String() const |
| std::wstring | toStdWString() const |
| uint | кНеотрицательномуЦелому(bool *ok = Q_NULLPTR, int base = 10) const |
| ulong | кБезЗнаковомуДолгому(bool *ok = Q_NULLPTR, int base = 10) const |
| qulonglong | кБезЗнаковомуДолгомуДолгому(bool *ok = Q_NULLPTR, int base = 10) const |
| ushort | кБезЗнаковомуКоротому(bool *ok = Q_NULLPTR, int base = 10) const |
| QVector<uint> | toUcs4() const |
| QString | кВерхнемуРегистру() const |
| QByteArray | кUtf8() const |
| int | toWCharArray(wchar_t *array) const |
| QString | обрезанная() const |
| void | обрезать(int position) |
| const QChar * | unicode() const |
| const ushort * | utf16() const |
| bool | не равно(QLatin1String other) const |
| bool | не равно(const char *other) const |
| bool | не равно(const QByteArray &other) const |
| QString & | +=(const QString &other) |
| QString & | +=(QChar ch) |
| QString & | +=(const QStringRef &str) |
| QString & | operator+=(QLatin1String str) |
| QString & | operator+=(const char *str) |
| QString & | operator+=(const QByteArray &ba) |
| QString & | operator+=(char ch) |
| bool | operator<(QLatin1String other) const |
| bool | operator<(const char *other) const |
| bool | operator<(const QByteArray &other) const |
| bool | operator<=(QLatin1String other) const |
| bool | operator<=(const char *other) const |
| bool | operator<=(const QByteArray &other) const |
| QString & | operator=(const QString &other) |
| QString & | operator=(QChar ch) |
| QString & | operator=(QLatin1String str) |
| QString & | operator=(QString &&other) |
| QString & | operator=(const char *str) |
| QString & | operator=(const QByteArray &ba) |
| QString & | operator=(char ch) |
| bool | operator==(QLatin1String other) const |
| bool | operator==(const char *other) const |
| bool | operator==(const QByteArray &other) const |
| bool | operator>(QLatin1String other) const |
| bool | operator>(const char *other) const |
| bool | operator>(const QByteArray &other) const |
| bool | operator>=(QLatin1String other) const |
| bool | operator>=(const char *other) const |
| bool | operator>=(const QByteArray &other) const |
| QCharRef | operator[](int position) |
| const QChar | operator[](int position) const |
| const QChar | operator[](uint position) const |
| QCharRef | operator[](uint position) |
Static Public Members
| QString | asprintf(const char *cformat, ...) |
| int | compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(const QString &s1, QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(QLatin1String s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString | fromCFString(CFStringRef string) |
| QString | fromLatin1(const char *str, int size = -1) |
| QString | fromLatin1(const QByteArray &str) |
| QString | fromLocal8Bit(const char *str, int size = -1) |
| QString | fromLocal8Bit(const QByteArray &str) |
| QString | fromNSString(const NSString *string) |
| QString | fromRawData(const QChar *unicode, int 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 uint *unicode, int size = -1) |
| QString | fromUcs4(const char32_t *str, int size = -1) |
| QString | fromUtf8(const char *str, int size = -1) |
| QString | fromUtf8(const QByteArray &str) |
| QString | fromUtf16(const ushort *unicode, int size = -1) |
| QString | fromUtf16(const char16_t *str, int size = -1) |
| QString | fromWCharArray(const wchar_t *string, int size = -1) |
| int | localeAwareCompare(const QString &s1, const QString &s2) |
| int | localeAwareCompare(const QString &s1, const QStringRef &s2) |
| QString | number(long n, int base = 10) |
| QString | number(uint n, int base = 10) |
| QString | number(int n, int base = 10) |
| QString | number(ulong n, int base = 10) |
| QString | number(qlonglong n, int base = 10) |
| QString | number(qulonglong n, int base = 10) |
| QString | number(double n, char format = 'g', int precision = 6) |
| QString | vasprintf(const char *cformat, va_list ap) |
Связанные нечлены
| bool | operator!=(const QString &s1, const QString &s2) |
| bool | operator!=(const char *s1, const QString &s2) |
| const QString | operator+(const QString &s1, const QString &s2) |
| const QString | operator+(const QString &s1, const char *s2) |
| const QString | operator+(const char *s1, const QString &s2) |
| const QString | operator+(const QString &s, char ch) |
| const QString | operator+(char ch, const QString &s) |
| bool | operator<(const char *s1, const QString &s2) |
| QDataStream & | operator<<(QDataStream &stream, const QString &string) |
| bool | operator<=(const QString &s1, const QString &s2) |
| bool | operator<=(const char *s1, const QString &s2) |
| bool | operator==(const char *s1, const QString &s2) |
| bool | operator>(const QString &s1, const QString &s2) |
| bool | operator>(const char *s1, const QString &s2) |
| bool | operator>=(const QString &s1, const QString &s2) |
| bool | operator>=(const char *s1, const QString &s2) |
| QDataStream & | operator>>(QDataStream &stream, QString &string) |
Макросы
| QStringLiteral(str) | |
| QT_NO_CAST_FROM_ASCII | |
| QT_NO_CAST_TO_ASCII | |
| QT_RESTRICTED_CAST_FROM_ASCII |
Подробное описание
Класс QString предоставляет строку символов Юникод.
QString хранит строку из 16-битных QChar, где каждый QChar соответствует одному символу Юникода версии 4.0. (Символы Юникода с кодовыми значениями выше 65535 хранятся с использованием пар суррогатов, т.е. двух последовательных QChar.)
Юникод — это международный стандарт, поддерживающий большинство систем письма, используемых сегодня. Он является надмножеством US-ASCII (ANSI X3.4-1986) и Latin-1 (ISO 8859-1), и все символы US-ASCII/Latin-1 доступны в тех же позициях кода.
Внутри QString используется неявное совместное использование (copy-on-write), чтобы уменьшить использование памяти и избежать ненужного копирования данных. Это также помогает снизить издержки хранения 16-битных символов вместо 8-битных.
Помимо QString, Qt также предоставляет класс QByteArray для хранения сырых байтов и традиционных 8-битных строк с завершающим нулём ('\0'). Для большинства целей, QString — это класс, который следует использовать. Он используется во всем API Qt, а поддержка Юникода гарантирует, что ваши приложения будут легко переводиться, если вы захотите расширить рынок своего приложения в будущем. Два основных случая, когда QByteArray подходит, — это когда вам нужно хранить сырые двоичные данные и когда критично сохранение памяти (например, в системах встраиваемой электроники).
Инициализация строки
Один из способов инициализации QString — просто передать const char * в его конструктор. Например, следующий код создаёт QString размером 5, содержащий данные "Hello":
QString str = "Hello";
QString преобразует данные const char * в Юникод, используя функцию fromUtf8().
Во всех функциях QString, принимающих const char * параметры, const char * интерпретируется как классическая строка C со завершающим нулём ('\0'), закодированная в UTF-8. Допустимо, чтобы параметр const char * был равен 0.
Вы также можете предоставить данные строки как массив QChar:
static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };
QString str(data, 4); QString создаёт глубокую копию данных QChar, поэтому вы можете изменить их позже, не испытывая побочных эффектов. (Если по причинам производительности вы не хотите создавать глубокую копию данных символов, используйте QString::fromRawData() вместо этого.)
Ещё один подход — установить размер строки с помощью resize() и инициализировать данные символ за символом. QString использует индексы, начиная с 0, как и массивы C++. Чтобы получить доступ к символу в определённой позиции индекса, можно использовать operator[](). Для неконстантных строк 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 (int 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[](), потому что она никогда не вызывает глубокую копию. В качестве альтернативы используйте функции left(), right() или mid() для извлечения нескольких символов за раз.
QString может содержать символы '\0' (QChar::Null). Функция size() всегда возвращает размер всей строки, включая вложенные символы '\0'.
После вызова функции resize() значения вновь выделенных символов неопределённы. Чтобы установить все символы строки в определённое значение, используйте функцию fill().
QString предоставляет десятки перегрузок, предназначенных для упрощения использования строк. Например, если вы хотите сравнить QString со строковой константой, вы можете написать код, как в примере, и он будет работать как ожидается:
QString str;
if (str == "auto" || str == "extern"
|| str == "static" || str == "register") {
// ...
} Вы также можете передавать строковые константы в функции, принимающие QString в качестве аргумента, вызывая конструктор QString(const char *). Аналогично, вы можете передавать QString в функцию, принимающую const char * аргумент, используя макрос qPrintable(), который возвращает данный QString как const char *. Это эквивалентно вызову <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" Если вы постепенно создаёте QString и заранее примерно знаете, сколько символов будет содержать QString, вы можете вызвать reserve(), попросив QString предварительно выделить определённое количество памяти. Вы также можете вызвать capacity() для того, чтобы узнать, сколько памяти фактически выделил QString.
В функциях replace() и remove() первые два аргумента — это позиция, с которой начинать удаление, и количество символов, которые нужно удалить. Если вы хотите заменить все вхождения определённой подстроки на другую, используйте одну из перегрузок функции replace() с двумя параметрами.
Частая необходимость — удалить символы пробелов из строки ('\n', '\t', ' ', и т.д.). Если вы хотите удалить пробелы с обоих концов QString, используйте функцию trimmed(). Если вы хотите удалить пробелы с обоих концов и заменить несколько последовательных пробелов одним пробелом внутри строки, используйте simplified().
Если вы хотите найти все вхождения определённого символа или подстроки в QString, используйте функции indexOf() или lastIndexOf(). Первая ищет вперёд, начиная с заданной позиции индекса, вторая ищет назад. Обе возвращают позицию индекса символа или подстроки, если находят; в противном случае возвращают -1. Например, вот типичный цикл, который находит все вхождения определённой подстроки:
QString str = "We must be <b>bold</b>, very <b>bold</b>";
int 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(). Вы можете получить список строк из списка строк, содержащих определённую подстроку или соответствующих определённому QRegExp, используя функцию QStringList::filter().
Запрос данных строки
Если вы хотите узнать, начинается ли QString или заканчивается ли он определённой подстрокой, используйте startsWith() или endsWith(). Если вам просто нужно проверить, содержит ли QString определённый символ или подстроку, используйте функцию contains(). Если вы хотите узнать, сколько раз определённый символ или подстрока встречаются в строке, используйте count().
QString можно сравнивать, используя перегруженные операторы, такие как operator<(), operator<=(), operator==(), operator>=() и так далее. Обратите внимание, что сравнение основано исключительно на числовых значениях символов Юникода. Это очень быстро, но не соответствует ожиданиям человека; функция QString::localeAwareCompare() — лучший выбор для сортировки строк пользовательского интерфейса.
Чтобы получить указатель на фактические данные символов, вызовите data() или constData(). Эти функции возвращают указатель на начало данных QChar. Указатель гарантированно остаётся действительным до тех пор, пока для QString не будет вызвано функция, которая не является константной.
Преобразование между 8-битными строками и строками Юникода
QString предоставляет следующие три функции, возвращающие const char * версию строки в виде QByteArray: toUtf8(), toLatin1() и toLocal8Bit().
- toLatin1() возвращает 8-битную строку, закодированную в Latin-1 (ISO 8859-1).
- toUtf8() возвращает 8-битную строку, закодированную в UTF-8. UTF-8 — это надмножество US-ASCII (ANSI X3.4-1986), которое поддерживает весь набор символов Юникода с помощью многобайтовых последовательностей.
- toLocal8Bit() возвращает 8-битную строку, используя кодировку системы.
Для преобразования из этих кодировок QString предоставляет fromLatin1(), fromUtf8() и fromLocal8Bit(). Другие кодировки поддерживаются классом QTextCodec.
Как упоминалось выше, QString предоставляет множество функций и операторов, которые облегчают взаимодействие с const char * строками. Но эта функциональность — это двойной меч: она делает QString более удобным в использовании, если все строки являются US-ASCII или Latin-1, но всегда есть риск, что неявное преобразование из или в const char * выполняется с использованием неправильной 8-битной кодировки. Чтобы свести эти риски к минимуму, можно отключить эти неявные преобразования, определив следующие два препроцессорных символа:
-
QT_NO_CAST_FROM_ASCIIотключает автоматические преобразования из строковых литералов C и указателей в Юникод. -
QT_RESTRICTED_CAST_FROM_ASCIIразрешает автоматические преобразования из символов C и массивов символов, но отключает автоматические преобразования из указателей на символы в Юникод. -
QT_NO_CAST_TO_ASCIIотключает автоматическое преобразование из QString в строки C.
Один из способов определения этих символов препроцессора глобально для вашего приложения — добавить следующую запись в файл проекта qmake:
DEFINES += QT_NO_CAST_FROM_ASCII \
QT_NO_CAST_TO_ASCII Затем необходимо явно вызвать fromUtf8(), fromLatin1() или fromLocal8Bit() для построения QString из 8-битной строки или использовать лёгкий класс QLatin1String, например:
QString url = QLatin1String("http://www.unicode.org/"); Аналогично, необходимо явно вызвать toLatin1(), toUtf8() или toLocal8Bit() для преобразования QString в 8-битную строку. (Другие кодировки поддерживаются через класс QTextCodec.)
| Примечание для программистов C |
|---|
Из-за системы типов C++ и того, что QString является неявным общим, QStrings могут обрабатываться как int или другие базовые типы. Например:QString Widget::boolToString(bool b)
{
QString result;
if (b)
result = "True";
else
result = "False";
return result;
} Переменная |
Различие между нулевой и пустой строками
По историческим причинам QString различает нулевую и пустую строки. Нулевая строка — это строка, инициализированная с помощью конструктора по умолчанию QString или передачей (const char *)0 в конструктор. Пустая строка — это любая строка с размером 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() возвращает указатель на символ '\0' для нулевой строки (не нулевой указатель), а QString() сравнивается с QString(""). Рекомендуется всегда использовать функцию isEmpty() и избегать isNull().
Форматы аргументов
В методах-членах, где можно указать аргумент format (например, arg(), number()), аргумент format может быть одним из следующих:
| Формат | Значение |
|---|---|
e |
формат как [-]9.9e[+|-]999 |
E |
формат как [-]9.9E[+|-]999 |
f |
формат как [-]9.9 |
g |
использовать формат e или f, какой из них более краткий |
G |
использовать формат E или f, какой из них более краткий |
Точность также указывается с помощью аргумента формат. Для форматов 'e', 'E' и 'f' точность представляет количество цифр после десятичной точки. Для форматов 'g' и 'G' точность представляет максимальное количество значащих цифр (завершающие нули опускаются).
Более эффективное создание строк
Многие строки известны на этапе компиляции. Но тривиальный конструктор QString("Hello") скопирует содержимое строки, обрабатывая содержимое как Latin-1. Чтобы избежать этого, можно использовать макрос QStringLiteral для непосредственного создания необходимых данных на этапе компиляции. Создание QString из литерала тогда не вызывает накладных расходов во время выполнения.
Несколько менее эффективным способом является использование QLatin1String. Этот класс оборачивает строковый литерал C, предварительно вычисляет его длину на этапе компиляции и затем может использоваться для более быстрого сравнения с QStrings и преобразования в QStrings, чем обычный строковый литерал C.
Использование оператора QString '+' позволяет легко построить сложную строку из нескольких подстрок. Вы часто будете писать код такого рода:
QString foo;
QString type = "long";
foo->setText(QLatin1String("vector<") + type + QLatin1String(">::iterator"));
if (foo.startsWith("(" + type + ") 0x"))
... В обоих этих способах построения строк нет ничего плохого, но есть несколько скрытых неэффективностей. Начиная с Qt 4.6, их можно устранить.
Во-первых, многократное использование оператора '+' обычно означает многократное выделение памяти. При конкатенации n подстрок, где n > 2, может быть до n - 1 вызовов выделения памяти.
В 4.6 был добавлен внутренний шаблонный класс QStringBuilder вместе с несколькими вспомогательными функциями. Этот класс помечен как внутренний и не отображается в документации, поскольку вы не должны его создавать в своём коде. Его использование будет автоматическим, как описано ниже. Класс находится в src/corelib/tools/qstringbuilder.cpp, если вы хотите его посмотреть.
QStringBuilder использует шаблоны выражений и переопределяет оператор '%' таким образом, что при использовании '%' для конкатенации строк вместо '+' многократные конкатенации подстрок откладываются до тех пор, пока окончательный результат не будет назначен QString. В этот момент количество памяти, необходимое для окончательного результата, известно. Затем выделение памяти вызывается один раз для получения требуемого места, и подстроки копируются в него по одной.
Дополнительная эффективность достигается за счёт инлайнинга и уменьшения количества ссылок (созданный из QStringBuilder QString обычно имеет счётчик ссылок 1, в то время как QString::append() требует дополнительной проверки).
Существует три способа доступа к этому улучшенному методу построения строк. Простой способ — включить QStringBuilder везде, где вы хотите его использовать, и использовать оператор '%' вместо '+' при конкатенации строк:
#include <QStringBuilder>
QString hello("hello");
QStringRef el(&hello, 2, 3);
QLatin1String world("world");
QString message = hello % el % world % QChar('!'); Более глобальный подход, наиболее удобный, но не полностью совместимый с исходным кодом, заключается в определении в файле .pro:
DEFINES *= QT_USE_QSTRINGBUILDER
и '+' будет автоматически выполнено как QStringBuilder '%' везде.
См. также fromRawData(), QChar, QLatin1String, QByteArray и QStringRef.
Документация по типам членов
typedef QString::ConstIterator
Синоним Qt-стиля для QString::const_iterator.
typedef QString::Iterator
Синоним Qt-стиля для QString::iterator.
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::SectionFlagflags QString::SectionFlags
Это перечисление задаёт флаги, которые могут использоваться для влияния на различные аспекты поведения функции section() относительно разделителей и пустых полей.
| Постоянная | Значение | Описание |
|---|---|---|
QString::SectionDefault |
0x00 |
Пустые поля учитываются, ведущие и заключительные разделители не включаются, и разделитель сравнивается чувствительно к регистру. |
QString::SectionSkipEmpty |
0x01 |
Обрабатывать пустые поля так, как будто их не существует, т. е. они не учитываются в отношении start и end. |
QString::SectionIncludeLeadingSep |
0x02 |
Включать ведущий разделитель (если он есть) в результирующую строку. |
QString::SectionIncludeTrailingSep |
0x04 |
Включать заключительный разделитель (если он есть) в результирующую строку. |
QString::SectionCaseInsensitiveSeps |
0x08 |
Сравнивать разделитель без учёта регистра. |
Тип SectionFlags — это псевдоним для QFlags<SectionFlag>. Он хранит комбинацию значений SectionFlag с использованием операции OR.
См. также section().
enum QString::SplitBehavior
Это перечисление указывает, как функция split() должна вести себя по отношению к пустым строкам.
| Постоянная | Значение | Описание |
|---|---|---|
QString::KeepEmptyParts |
0 |
Если поле пустое, сохранить его в результате. |
QString::SkipEmptyParts |
1 |
Если поле пустое, не включать его в результат. |
См. также split().
typedef QString::const_iterator
Этот псевдоним предоставляет итератор const STL-стиля для QString.
См. также QString::iterator.
typedef QString::const_pointer
Тип QString::const_pointer предоставляет указатель const типа STL на элемент QString (QChar).
typedef QString::const_reference
Этот тип предоставляет ссылку const типа STL для элемента QString (QChar).
typedef QString::const_reverse_iterator
Этот тип предоставляет обратный итератор const типа STL для QString.
Этот тип был введён в Qt 5.6.
См. также QString::reverse_iterator и QString::const_iterator.
typedef QString::difference_type
Тип QString::size_type предоставляет тип STL для разности указателей.
typedef QString::iterator
Тип QString::iterator предоставляет итератор не-const типа STL для QString.
См. также QString::const_iterator.
typedef QString::pointer
Тип QString::const_pointer предоставляет указатель типа STL на элемент QString (QChar).
typedef QString::reference
Этот тип предоставляет ссылку типа STL для элемента QString (QChar).
typedef QString::reverse_iterator
Этот тип предоставляет обратный итератор не-const типа STL для QString.
Этот тип был введён в Qt 5.6.
См. также QString::const_reverse_iterator и QString::iterator.
typedef QString::size_type
Тип QString::size_type предоставляет тип STL для размеров (int).
typedef QString::value_type
Этот тип предоставляет тип значения STL для QString.
Документация по членам-функциям
QString::QString()
Конструирует пустую строку. Пустые строки также являются нулевыми.
См. также isEmpty().
QString::QString(const QChar *unicode, int size = -1)
Конструирует строку, инициализированную первыми size символами массива QChar unicode.
Если unicode равен 0, конструируется пустая строка.
Если size отрицательно, предполагается, что unicode указывает на нуль-терминированный массив, и его длина определяется динамически. Завершающий нулевой символ не считается частью строки.
QString создаёт глубокую копию данных строки. Данные unicode копируются как есть, и метка порядка байтов сохраняется, если она присутствует.
См. также fromRawData().
QString::QString(QChar ch)
Конструирует строку размера 1, содержащую символ ch.
QString::QString(int size, QChar ch)
Конструирует строку заданного размера size, где каждый символ установлен в ch.
См. также fill().
QString::QString(QLatin1String str)
Конструирует копию строки Latin-1 str.
См. также fromLatin1().
QString::QString(const QString &other)
Конструирует копию other.
Эта операция занимает постоянное время, потому что QString неявно разделяет ресурсы. Это делает возврат QString из функции очень быстрым. Если изменён общий экземпляр, он будет скопирован (copy-on-write), и это займёт линейное время.
См. также operator=().
QString::QString(QString &&other)
Перемещающая конструкция QString экземпляра, делающая его указывающим на тот же объект, на который указывал other.
Эта функция была введена в Qt 5.2.
QString::QString(const char *str)
Конструирует строку, инициализированную строкой 8-битного типа str. Указанный указатель const char преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить этот конструктор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые строки проходят через QObject::tr(), например.
Примечание: Определение QT_RESTRICTED_CAST_FROM_ASCII также отключает этот конструктор, но вместо него включает QString(const char (&ch)[N]) конструктор. Использование не-литерального ввода или ввода с встроенными нулевыми символами или символами, не принадлежащими к 7-битовой кодировке, в этом случае не определено.
См. также fromLatin1(), fromLocal8Bit(), и fromUtf8().
QString::QString(const QByteArray &ba)
Конструирует строку, инициализированную массивом байтов ba. Указанный массив байтов преобразуется в Unicode с помощью fromUtf8(). Остановка копирования происходит при первом нулевом символе; в противном случае копируется весь массив байтов.
Вы можете отключить этот конструктор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые строки проходят через QObject::tr(), например.
См. также fromLatin1(), fromLocal8Bit(), и fromUtf8().
QString::~QString()
Уничтожает строку.
QString &QString::append(const QString &str)
Добавляет строку str в конец этой строки.
Пример:
QString x = "free"; QString y = "dom"; x.append(y); // x == "freedom"
Это то же самое, что использование функции insert():
x.insert(x.size(), y);
Функция append() обычно очень быстрая (постоянное время), потому что QString предварительно выделяет дополнительное пространство в конце данных строки, поэтому она может увеличиваться без повторного выделения всей строки каждый раз.
См. также operator+=(), prepend(), и insert().
QString &QString::append(const QChar *str, int len)
Эта функция перегружает append().
Добавляет len символов из массива QChar str в эту строку.
Эта функция была введена в Qt 5.0.
QString &QString::append(QChar ch)
Эта функция перегружает append().
Добавляет символ ch в эту строку.
QString &QString::append(const QStringRef &reference)
Добавляет заданную строку reference к этой строке и возвращает результат.
Эта функция была введена в Qt 4.4.
QString &QString::append(QLatin1String str)
Эта функция перегружает append().
Добавляет строку Latin-1 str к этой строке.
QString &QString::append(const char *str)
Эта функция перегружает append().
Добавляет строку str к этой строке. Указанный указатель const char преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые строки проходят через QObject::tr(), например.
QString &QString::append(const QByteArray &ba)
Эта функция перегружает append().
Добавляет массив байтов ba к этой строке. Указанный массив байтов преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые строки проходят через QObject::tr(), например.
QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const
Возвращает копию этой строки, в которой маркер с наименьшим номером заменён на строку a, т.е. %1, %2, ..., %99.
fieldWidth задаёт минимальную длину, которую должно занимать значение аргумента a. Если a занимает меньше места, чем fieldWidth, оно дополняется символом fillChar до fieldWidth. Положительное значение 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() заключается в том, что порядок маркированных позиций может измениться, если строки приложения переведены на другие языки, но каждый вызов arg() всё равно заменит маркер с наименьшим номером, неважно где он находится. Кроме того, если маркер %i появляется в строке более одного раза, arg() заменит все его вхождения.
Если не осталось незаменённых маркеров, выводится сообщение об ошибке, и результат является неопределённым. Номера маркеров должны находиться в диапазоне от 1 до 99.
QString QString::arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
fieldWidth задаёт минимальную длину, до которой дополняется a, и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение — к левому выравниванию.
Аргумент base задаёт систему счисления для преобразования целого числа a в строку. base должен быть в диапазоне от 2 до 36, при этом 8 соответствует восьмеричной, 10 — десятичной, а 16 — шестнадцатеричной системам счисления.
Если fillChar равно '0' (цифра 0, ASCII 48), используется ноль из текущего локали. Для отрицательных чисел нули могут быть добавлены перед знаком минус.
QString QString::arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
fieldWidth задаёт минимальную длину, до которой дополняется a, и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение — к левому выравниванию.
Аргумент a выражается в указанной системе счисления base, которая по умолчанию равна 10 и должна быть в диапазоне от 2 до 36.
Символ '%' может быть последован символом 'L', в таком случае последовательность заменится на локальную версию представления a. Преобразование использует текущий локаль. Текущий локаль определяется из настроек локали системы при запуске приложения. Его можно изменить с помощью QLocale::setDefault(). Флаг 'L' игнорируется, если base не равен 10.
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" Если fillChar равно '0' (цифра 0, ASCII 48), используется ноль из текущего локали. Для отрицательных чисел нули могут быть добавлены перед знаком минус.
QString QString::arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
fieldWidth задаёт минимальную длину, до которой дополняется a, и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение — к левому выравниванию.
Аргумент base задаёт систему счисления для преобразования целого числа a в строку. Значение base должно быть в диапазоне от 2 до 36, при этом 8 соответствует восьмеричной, 10 — десятичной, а 16 — шестнадцатеричной системам счисления.
Если fillChar равно '0' (цифра 0, ASCII 48), используется ноль из текущего локали. Для отрицательных чисел нули могут быть добавлены перед знаком минус.
QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
Аргумент a выражается в системе счисления base, которая по умолчанию равна 10 и должна быть в диапазоне от 2 до 36. Для систем счисления, отличных от 10, a обрабатывается как беззнаковое целое число.
fieldWidth задаёт минимальную длину, до которой дополняется a, и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение — к левому выравниванию.
Символ '%' может быть последован символом 'L', в таком случае последовательность заменится на локальную версию представления a. Преобразование использует текущий локаль, заданный с помощью QLocale::setDefault(). Если текущий локаль не задан, используется локаль "C". Флаг 'L' игнорируется, если base не равен 10.
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" Если fillChar равно '0' (цифра 0, ASCII 48), используется ноль из текущего локали. Для отрицательных чисел нули могут быть добавлены перед знаком минус.
QString QString::arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
Аргумент base задаёт систему счисления для преобразования целого числа a в строку. Значение base должно быть в диапазоне от 2 до 36.
Если fillChar равно '0' (цифра 0, ASCII 48), используется ноль из текущего локали. Для отрицательных чисел нули могут быть добавлены перед знаком минус.
QString QString::arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
fieldWidth задаёт минимальную длину, до которой дополняется a, и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение — к левому выравниванию.
Аргумент base задаёт систему счисления для преобразования целого числа a в строку. Значение base должно быть в диапазоне от 2 до 36, при этом 8 соответствует восьмеричной, 10 — десятичной, а 16 — шестнадцатеричной системам счисления.
Если fillChar равно '0' (цифра 0, ASCII 48), используется ноль из текущего локали. Для отрицательных чисел нули могут быть добавлены перед знаком минус.
QString QString::arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
fieldWidth задаёт минимальную длину, до которой дополняется a, и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение — к левому выравниванию.
Аргумент base задаёт систему счисления для преобразования целого числа a в строку. Значение base должно быть в диапазоне от 2 до 36, при этом 8 соответствует восьмеричной, 10 — десятичной, а 16 — шестнадцатеричной системам счисления.
Если fillChar равно '0' (цифра 0, ASCII 48), используется ноль из текущего локали. Для отрицательных чисел нули могут быть добавлены перед знаком минус.
QString QString::arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
Аргумент a форматируется в соответствии с указанными format и precision. Подробности см. в разделе Форматы аргументов.
fieldWidth задаёт минимальную длину, до которой дополняется a, и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение — к левому выравниванию.
double d = 12.34;
QString str = QString("delta: %1").arg(d, 0, 'E', 3);
// str == "delta: 1.234E+01" Символ '%' может быть последован символом 'L', в таком случае последовательность заменится на локальную версию представления a. Преобразование использует текущий локаль, заданный с помощью QLocale::setDefault(). Если текущий локаль не задан, используется локаль "C".
Если fillChar равно '0' (цифра 0, ASCII 48), в этой функции будет использоваться ноль из текущего локали для дополнения. Для отрицательных чисел нули, вероятно, будут добавлены перед знаком минус.
См. также QLocale::toString().
QString QString::arg(char a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
Аргумент a интерпретируется как символ Latin-1.
QString QString::arg(QChar a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
QString QString::arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const
Эта функция перегружает arg().
fieldWidth указывает минимальное количество места, к которому a выравнивается и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение приводит к левому выравниванию текста.
Аргумент base определяет основание, используемое при преобразовании целого числа a в строку. Основание должно быть в диапазоне от 2 до 36, где 8 даёт восьмеричное, 10 десятичное и 16 шестнадцатеричное числа.
Если fillChar равен '0' (число 0, ASCII 48), используется ноль текущего языка. Для отрицательных чисел нулевое заполнение может появиться перед знаком минус.
QString QString::arg(const QString &a1, const QString &a2) const
Эта функция перегружает arg().
Это то же самое, что и str.arg(a1).arg(a2), за исключением того, что строки a1 и a2 заменяются за один проход. Это может иметь значение, если a1 содержит, например, %1:
QString str;
str = "%1 %2";
str.arg("%1f", "Hello"); // returns "%1f Hello"
str.arg("%1f").arg("Hello"); // returns "Hellof %2" Аналогичная проблема возникает, когда пронумерованные маркеры замены не разделены пробелами:
QString str;
str = "%1%3%2";
str.arg("Hello").arg(20).arg(50); // returns "Hello500"
str = "%1%2%3";
str.arg("Hello").arg(50).arg(20); // returns "Hello5020" Давайте рассмотрим подстановки:
- Сначала
Helloзаменяет%1, так что строка становится"Hello%3%2". - Затем
20заменяет%2, так что строка становится"Hello%320". - Поскольку максимальное значение пронумерованного маркера замены равно 99,
50заменяет%32.
Таким образом, строка в конечном итоге становится "Hello500".
В таких случаях следующее даёт ожидаемые результаты:
QString str;
str = "%1%2%3";
str.arg("Hello", QString::number(20), QString::number(50)); // returns "Hello5020" QString QString::arg(const QString &a1, const QString &a2, const QString &a3) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3), за исключением того, что строки a1, a2 и a3 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4), за исключением того, что строки a1, a2, a3 и a4 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5), за исключением того, что строки a1, a2, a3, a4 и a5 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6)), за исключением того, что строки a1, a2, a3, a4, a5 и a6 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7), за исключением того, что строки a1, a2, a3, a4, a5, a6 и a7 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8), за исключением того, что строки a1, a2, a3, a4, a5, a6, a7 и a8 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8, const QString &a9) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8).arg(a9), за исключением того, что строки a1, a2, a3, a4, a5, a6, a7, a8 и a9 заменяются за один проход.
[static] QString QString::asprintf(const char *cformat, ...)
Безопасно строит форматированную строку из строки формата cformat и произвольного списка аргументов.
Строка формата поддерживает спецификаторы преобразования, модификаторы длины и флаги, предоставляемые функцией printf() в стандартной библиотеке C++. Строка cformat и %s аргументы должны быть закодированы в UTF-8.
Примечание: Последовательность %lc ожидает юникодный символ типа char16_t или ushort (как возвращается QChar::unicode()). Последовательность %ls ожидает указатель на нуль-терминированный массив юникодных символов типа char16_t или ushort (как возвращается QString::utf16()). Это расходится с функцией printf() в стандартной библиотеке C++, которая определяет %lc для печати wchar_t и %ls для печати wchar_t* и может также вызывать предупреждения компилятора на платформах, где размер wchar_t не равен 16 битам.
Предупреждение: Мы не рекомендуем использовать QString::asprintf() в новом коде Qt. Вместо этого рассмотрите использование QTextStream или arg(), которые без проблем поддерживают юникодные строки и являются типобезопасными. Вот пример с использованием QTextStream:
QString result; QTextStream(&result) << "pi = " << 3.14; // result == "pi = 3.14"
Для переводов, особенно если строки содержат более одной последовательности экранирования, следует рассмотреть использование функции arg() вместо этого. Это позволяет контролировать порядок замен переводчику.
Эта функция была представлена в Qt 5.5.
См. также arg().
const QChar QString::at(int position) const
Возвращает символ по заданному индексу position в строке.
position должен быть корректным индексом в строке (т.е., 0 <= position < size()).
См. также operator[]().
iterator QString::begin()
Возвращает итератор STL, указывающий на первый символ в строке.
См. также constBegin() и end().
const_iterator QString::begin() const
Эта функция перегружает begin().
int QString::capacity() const
Возвращает максимальное количество символов, которое может храниться в строке без принудительной переаллокации.
Единственная цель этой функции — предоставить способ тонкой настройки использования памяти QString. Как правило, вам редко понадобится вызывать эту функцию. Если вы хотите узнать, сколько символов находится в строке, вызовите size().
См. также reserve() и squeeze().
const_iterator QString::cbegin() const
Возвращает константный итератор в стиле STL, указывающий на первый символ в строке.
Эта функция была добавлена в Qt 5.0.
const_iterator QString::cend() const
Возвращает константный итератор в стиле STL, указывающий на воображаемый символ после последнего символа в списке.
Эта функция была добавлена в Qt 5.0.
void QString::chop(int n)
Удаляет n символов из конца строки.
Если n больше или равно size(), результат — пустая строка; если n отрицательное, оно эквивалентно нулю.
Пример:
QString str("LOGOUT\r\n");
str.chop(2);
// str == "LOGOUT" Если вы хотите удалить символы из начала строки, используйте remove() вместо этого.
См. также truncate(), resize() и remove().
void QString::clear()
Очищает содержимое строки и делает её нулевой.
См. также resize() и isNull().
[static] int QString::compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Сравнивает s1 с s2 и возвращает целое число, меньшее, равное или большее нуля, если s1 меньше, равна или больше s2.
Если 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 Эта функция была добавлена в Qt 4.2.
См. также operator==(), operator<() и operator>().
int QString::compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает compare().
То же самое, что и compare(*this, other, cs).
Эта функция была добавлена в Qt 4.2.
int QString::compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает compare().
Лексически сравнивает эту строку со строкой other и возвращает целое число, меньшее, равное или большее нуля, если эта строка меньше, равна или больше строки other.
То же самое, что и compare(*this, other, cs).
Эта функция была добавлена в Qt 4.2.
[static] int QString::compare(const QString &s1, QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает compare().
Производит сравнение s1 и s2, используя настройки регистровой чувствительности cs.
Эта функция была добавлена в Qt 4.2.
[static] int QString::compare(QLatin1String s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает compare().
Производит сравнение s1 и s2, используя настройки регистровой чувствительности cs.
Эта функция была добавлена в Qt 4.2.
int QString::compare(const QStringRef &ref, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает compare().
Сравнивает ссылку на строку ref со строкой и возвращает целое число, меньшее, равное или большее нуля, если строка меньше, равна или больше ref.
[static] int QString::compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает compare().
const_iterator QString::constBegin() const
Возвращает константный итератор в стиле STL, указывающий на первый символ в строке.
См. также begin() и constEnd().
const QChar *QString::constData() const
Возвращает указатель на данные, хранящиеся в QString. Указатель может быть использован для доступа к символам, составляющим строку. Для удобства данные завершаются символом '\0'.
Обратите внимание, что указатель остаётся действительным только до тех пор, пока строка не изменяется.
См. также data() и operator[]().
const_iterator QString::constEnd() const
Возвращает константный итератор в стиле STL, указывающий на воображаемый символ после последнего символа в списке.
См. также constBegin() и end().
bool QString::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true, если эта строка содержит вхождение строки str; в противном случае возвращает false.
Если cs — Qt::CaseSensitive (по умолчанию), поиск учитывает регистр; в противном случае поиск регистронезависимый.
Пример:
QString str = "Peter Pan";
str.contains("peter", Qt::CaseInsensitive); // returns true См. также indexOf() и count().
bool QString::contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает contains().
Возвращает true, если эта строка содержит вхождение символа ch; в противном случае возвращает false.
bool QString::contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает contains().
Возвращает true, если эта строка содержит вхождение латинской-1 строки str; в противном случае возвращает false.
Эта функция была добавлена в Qt 5.3.
bool QString::contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true, если эта строка содержит вхождение ссылки на строку str; в противном случае возвращает false.
Если cs — Qt::CaseSensitive (по умолчанию), поиск учитывает регистр; в противном случае поиск регистронезависимый.
Эта функция была добавлена в Qt 4.8.
См. также indexOf() и count().
bool QString::contains(const QRegExp &rx) const
Эта функция перегружает contains().
Возвращает true, если регулярное выражение rx соответствует части этой строки; в противном случае возвращает false.
bool QString::contains(QRegExp &rx) const
Эта функция перегружает contains().
Возвращает true, если регулярное выражение rx соответствует части этой строки; в противном случае возвращает false.
Если есть совпадение, регулярное выражение rx будет содержать сопоставленные захваты (см. QRegExp::matchedLength, QRegExp::cap).
Эта функция была добавлена в Qt 4.5.
bool QString::contains(const QRegularExpression &re) const
Эта функция перегружает contains().
Возвращает true, если регулярное выражение re соответствует какому-либо участку этой строки; в противном случае возвращает false.
Эта функция была добавлена в Qt 5.0.
bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *match) const
Эта функция перегружает contains().
Возвращает true, если регулярное выражение re соответствует какому-либо участку этой строки; в противном случае возвращает false.
Если совпадение найдено и match не является нулевым указателем, результаты совпадения также записываются в объект QRegularExpressionMatch, на который указывает match.
Эта функция была добавлена в Qt 5.1.
См. также QRegularExpression::match().
int QString::count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает количество (возможно перекрывающихся) вхождений строки str в этой строке.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
См. также contains() и indexOf().
int QString::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает count().
Возвращает количество вхождений символа ch в строке.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
См. также contains() и indexOf().
int QString::count() const
Эта функция перегружает count().
То же, что и size().
int QString::count(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает count().
Возвращает количество (возможно перекрывающихся) вхождений ссылки на строку str в этой строке.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Эта функция была добавлена в Qt 4.8.
См. также contains() и indexOf().
int QString::count(const QRegExp &rx) const
Эта функция перегружает count().
Возвращает количество вхождений регулярного выражения rx в строке.
Функция считает перекрывающиеся совпадения, поэтому в примере ниже есть четыре вхождения "ана" или "ама":
QString str = "banana and panama";
str.count(QRegExp("a[nm]a")); // returns 4 int QString::count(const QRegularExpression &re) const
Эта функция перегружает count().
Возвращает количество вхождений регулярного выражения re в строке.
Функция считает перекрывающиеся совпадения, поэтому в примере ниже есть четыре вхождения "ана" или "ама":
QString str = "banana and panama";
str.count(QRegularExpression("a[nm]a")); // returns 4 Эта функция была добавлена в Qt 5.0.
const_reverse_iterator QString::crbegin() const
Возвращает постоянный итератор обратного порядка STL, указывающий на первый символ в строке в обратном порядке.
Эта функция была добавлена в Qt 5.6.
См. также begin(), rbegin(), и rend().
const_reverse_iterator QString::crend() const
Возвращает постоянный итератор обратного порядка STL, указывающий на символ, следующий за последним символом в строке в обратном порядке.
Эта функция была добавлена в Qt 5.6.
См. также end(), rend(), и rbegin().
QChar *QString::data()
Возвращает указатель на данные, хранящиеся в QString. Указатель можно использовать для доступа к и изменения символов, составляющих строку. Для удобства данные завершаются символом '\0'.
Пример:
QString str = "Hello world";
QChar *data = str.data();
while (!data->isNull()) {
qDebug() << data->unicode();
++data;
} Обратите внимание, что указатель остается действительным только до тех пор, пока строка не модифицируется другими средствами. Для только для чтения доступа, constData() быстрее, потому что он никогда не вызывает глубокую копию.
См. также constData() и operator[]().
const QChar *QString::data() const
Это перегруженная функция.
iterator QString::end()
Возвращает итератор STL, указывающий на воображаемый символ после последнего символа в строке.
См. также begin() и constEnd().
const_iterator QString::end() const
Эта функция перегружает end().
bool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true, если строка заканчивается на s; в противном случае возвращает false.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
QString str = "Bananas";
str.endsWith("anas"); // returns true
str.endsWith("pple"); // returns false См. также startsWith().
bool QString::endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает endsWith().
Возвращает true, если строка заканчивается на ссылку на строку s; в противном случае возвращает false.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Эта функция была добавлена в Qt 4.8.
См. также startsWith().
bool QString::endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает endsWith().
bool QString::endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true, если строка заканчивается на c; в противном случае возвращает false.
Эта функция перегружает endsWith().
QString &QString::fill(QChar ch, int 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)
Создаёт новый QString, содержащий копию CFString string.
Примечание: эта функция доступна только на macOS и iOS.
Эта функция была добавлена в Qt 5.2.
[static] QString QString::fromLatin1(const char *str, int size = -1)
Возвращает QString, инициализированный первыми size символами латинской-1 строки str.
Если size равно -1 (по умолчанию), оно принимается равным strlen(str).
См. также toLatin1(), fromUtf8() и fromLocal8Bit().
[static] QString QString::fromLatin1(const QByteArray &str)
Это перегруженная функция.
Возвращает QString, инициализированный строкой str в кодировке Latin-1.
Эта функция была добавлена в Qt 5.0.
[static] QString QString::fromLocal8Bit(const char *str, int size = -1)
Возвращает QString, инициализированную первыми size символами 8-битной строки str.
Если size равно -1 (по умолчанию), оно принимается равным strlen(str).
QTextCodec::codecForLocale() используется для выполнения преобразования.
См. также toLocal8Bit(), fromLatin1() и fromUtf8().
[static] QString QString::fromLocal8Bit(const QByteArray &str)
Это перегруженный метод.
Возвращает QString, инициализированную 8-битной строкой str.
Этот метод был введён в Qt 5.0.
[static] QString QString::fromNSString(const NSString *string)
Конструирует новый QString, содержащий копию строки NSString string.
Примечание: этот метод доступен только на macOS и iOS.
Этот метод был введён в Qt 5.2.
[static] QString QString::fromRawData(const QChar *unicode, int size)
Конструирует QString, который использует первые size символов Юникода в массиве unicode. Данные в unicode не копируются. Вызывающий код должен гарантировать, что unicode не будет удалён или изменён, пока существует QString (или неизменная копия).
Любые попытки изменить QString или его копии приведут к созданию глубокой копии данных, гарантируя, что исходные данные не изменятся.
Вот пример, как использовать QRegExp с сырыми данными в памяти, не копируя данные в QString:
QRegExp pattern;
static const QChar unicode[] = {
0x005A, 0x007F, 0x00A4, 0x0060,
0x1009, 0x0020, 0x0020};
int size = sizeof(unicode) / sizeof(QChar);
QString str = QString::fromRawData(unicode, size);
if (str.contains(QRegExp(pattern))) {
// ...
} Предупреждение: Строка, созданная с помощью fromRawData(), не завершается '\0', если сырые данные не содержат символ '\0' в позиции size. Это означает, что unicode() не вернёт строку, завершённую '\0' (хотя utf16() возвращает её, но с копированием исходных данных).
См. также fromUtf16() и setRawData().
[static] QString QString::fromStdString(const std::string &str)
Возвращает копию строки str. Указанная строка преобразуется в Юникод с помощью функции fromUtf8().
См. также fromLatin1(), fromLocal8Bit(), fromUtf8() и QByteArray::fromStdString().
[static] QString QString::fromStdU16String(const std::u16string &str)
Возвращает копию строки str. Предполагается, что указанная строка закодирована в UTF-16.
Этот метод был введён в Qt 5.5.
См. также fromUtf16(), fromStdWString() и fromStdU32String().
[static] QString QString::fromStdU32String(const std::u32string &str)
Возвращает копию строки str. Предполагается, что указанная строка закодирована в UCS-4.
Этот метод был введён в Qt 5.5.
См. также fromUcs4(), fromStdWString() и fromStdU16String().
[static] QString QString::fromStdWString(const std::wstring &str)
Возвращает копию строки str. Предполагается, что указанная строка закодирована в UTF-16, если размер wchar_t равен 2 байтам (например, в Windows), и в UCS-4, если размер wchar_t равен 4 байтам (большинство Unix-систем).
См. также fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4(), fromStdU16String() и fromStdU32String().
[static] QString QString::fromUcs4(const uint *unicode, int size = -1)
Возвращает QString, инициализированную первыми size символами Юникода строки unicode (кодировка ISO-10646-UCS-4).
Если size равно -1 (по умолчанию), unicode должна быть завершена 0.
Этот метод был введён в Qt 4.2.
См. также toUcs4(), fromUtf16(), utf16(), setUtf16(), fromWCharArray() и fromStdU32String().
[static] QString QString::fromUcs4(const char32_t *str, int size = -1)
Возвращает QString, инициализированную первыми size символами Юникода строки str (кодировка ISO-10646-UCS-4).
Если size равно -1 (по умолчанию), str должна быть завершена 0.
Этот метод был введён в Qt 5.3.
См. также toUcs4(), fromUtf16(), utf16(), setUtf16(), fromWCharArray() и fromStdU32String().
[static] QString QString::fromUtf8(const char *str, int size = -1)
Возвращает QString, инициализированную первыми size байтами UTF-8 строки str.
Если size равно -1 (по умолчанию), оно принимается равным strlen(str).
UTF-8 — это кодировка Юникода и может представлять все символы в строке Юникода, как QString. Однако с UTF-8 возможны некорректные последовательности, и в случае их обнаружения они будут заменены одним или несколькими символами-заменителем или подавлены. Это включает не-Юникод последовательности, не-символы, избыточные последовательности или суррогатные кодпоинты, закодированные в UTF-8.
Этот метод может использоваться для обработки входящих данных по частям, пока все символы UTF-8 не будут завершены входящими данными. Любые незавершенные символы в конце строки будут заменены или подавлены. Для выполнения декодирования со состоянием используйте QTextDecoder.
См. также toUtf8(), fromLatin1() и fromLocal8Bit().
[static] QString QString::fromUtf8(const QByteArray &str)
Это перегруженный метод.
Возвращает QString, инициализированную строкой UTF-8 str.
Этот метод был введён в Qt 5.0.
[static] QString QString::fromUtf16(const ushort *unicode, int size = -1)
Возвращает QString, инициализированную первыми size символами Юникода строки unicode (кодировка ISO-10646-UTF-16).
Если size равно -1 (по умолчанию), unicode должна быть завершена 0.
Метод проверяет наличие метки порядка байтов (BOM). Если её нет, предполагается порядок байтов хоста.
Этот метод медленнее по сравнению с другими преобразованиями Юникода. Если возможно, используйте QString(const QChar *, int) или QString(const QChar *).
QString создаёт глубокую копию данных Юникода.
См. также utf16(), setUtf16() и fromStdU16String().
[static] QString QString::fromUtf16(const char16_t *str, int size = -1)
Возвращает QString, инициализированную первыми size символами Юникода строки str (кодировка ISO-10646-UTF-16).
Если size равно -1 (по умолчанию), str должна быть завершена 0.
Метод проверяет наличие метки порядка байтов (BOM). Если её нет, предполагается порядок байтов хоста.
Этот метод медленнее по сравнению с другими преобразованиями Юникода. Если возможно, используйте QString(const QChar *, int) или QString(const QChar *).
QString создаёт глубокую копию данных Юникода.
Этот метод был введён в Qt 5.3.
См. также utf16(), setUtf16() и fromStdU16String().
[static] QString QString::fromWCharArray(const wchar_t *string, int size = -1)
Возвращает копию строки string, где кодировка string зависит от размера wchar. Если wchar занимает 4 байта, string интерпретируется как UCS-4, если wchar занимает 2 байта — как UTF-16.
Если size равно -1 (по умолчанию), string должна быть завершена нулём.
Эта функция была добавлена в Qt 4.2.
См. также fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4(), и fromStdWString().
int QString::indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает индекс первого вхождения строки str в этой строке, начиная поиск с индекса from. Возвращает -1, если str не найдена.
Если 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().
int QString::indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает indexOf().
Возвращает индекс первого вхождения символа ch в строке, начиная поиск с индекса from. Возвращает -1, если ch не найдено.
int QString::indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает индекс первого вхождения строки str в этой строке, начиная поиск с индекса from. Возвращает -1, если str не найдена.
Если 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 — со второго с конца и так далее.
Эта функция была добавлена в Qt 4.5.
См. также lastIndexOf(), contains(), и count().
int QString::indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает indexOf().
Возвращает индекс первого вхождения строковой ссылки str в этой строке, начиная поиск с индекса from. Возвращает -1, если str не найдена.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае — регистронезависимый.
Эта функция была добавлена в Qt 4.8.
int QString::indexOf(const QRegExp &rx, int from = 0) const
Эта функция перегружает indexOf().
Возвращает индекс первого совпадения регулярного выражения rx в строке, начиная поиск с индекса from. Возвращает -1, если rx не найдено.
Пример:
QString str = "the minimum";
str.indexOf(QRegExp("m[aeiou]"), 0); // returns 4 int QString::indexOf(QRegExp &rx, int from = 0) const
Эта функция перегружает indexOf().
Возвращает индекс первого совпадения регулярного выражения rx в строке, начиная поиск с индекса from. Возвращает -1, если rx не найдено.
Если совпадение найдено, регулярное выражение rx будет содержать сопоставленные группы (см. QRegExp::matchedLength, QRegExp::cap).
Пример:
QString str = "the minimum";
str.indexOf(QRegExp("m[aeiou]"), 0); // returns 4 Эта функция была добавлена в Qt 4.5.
int QString::indexOf(const QRegularExpression &re, int from = 0) const
Эта функция перегружает indexOf().
Возвращает индекс первого совпадения регулярного выражения re в строке, начиная поиск с индекса from. Возвращает -1, если re не найдено.
Пример:
QString str = "the minimum";
str.indexOf(QRegularExpression("m[aeiou]"), 0); // returns 4 Эта функция была добавлена в Qt 5.0.
int QString::indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const
Это перегруженная функция.
Возвращает индекс первого совпадения регулярного выражения re в строке, начиная поиск с индекса from. Возвращает -1, если re не найдено.
Если совпадение найдено и rmatch не равен нулю, результат совпадения записывается в объект QRegularExpressionMatch, на который указывает rmatch.
Пример:
QString str = "the minimum";
QRegularExpressionMatch match;
str.indexOf(QRegularExpression("m[aeiou]"), 0, &match); // returns 4
// match.captured() == mi Эта функция была добавлена в Qt 5.5.
QString &QString::insert(int position, const QString &str)
Вставляет строку str в заданную позицию position и возвращает ссылку на эту строку.
Пример:
QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal" Если заданная position больше, чем size(), массив сначала расширяется с помощью resize().
См. также append(), prepend(), replace(), и remove().
QString &QString::insert(int position, const QChar *unicode, int size)
Эта функция перегружает insert().
Вставляет первые size символов массива QChar unicode в заданную позицию position в строке.
QString &QString::insert(int position, QChar ch)
Эта функция перегружает insert().
Вставляет ch в заданную позицию position в строке.
QString &QString::insert(int position, const QStringRef &str)
Эта функция перегружает insert().
Вставляет строковую ссылку str в заданную позицию position и возвращает ссылку на эту строку.
Если заданная position больше, чем size(), массив сначала расширяется с помощью resize().
Эта функция была добавлена в Qt 5.5.
QString &QString::insert(int position, QLatin1String str)
Эта функция перегружает insert().
Вставляет строку Latin-1 str в заданную позицию position.
QString &QString::insert(int position, const char *str)
Эта функция перегружает insert().
Вставляет строку C str в заданную позицию position и возвращает ссылку на эту строку.
Если заданная position больше, чем size(), массив сначала расширяется с помощью resize().
Функция недоступна при определении QT_NO_CAST_FROM_ASCII.
Эта функция была добавлена в Qt 5.5.
QString &QString::insert(int position, const QByteArray &str)
Эта функция перегружает insert().
Вставляет массив байтов str в заданную позицию position и возвращает ссылку на эту строку.
Если заданная position больше, чем size(), массив сначала расширяется с помощью resize().
Функция недоступна при определении QT_NO_CAST_FROM_ASCII.
Эта функция была добавлена в Qt 5.5.
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::isNull() const
Возвращает true, если эта строка равна null; в противном случае возвращает false.
Пример:
QString().isNull(); // returns true
QString("").isNull(); // returns false
QString("abc").isNull(); // returns false Qt различает пустые строки и строки, содержащие данные, по историческим причинам. Для большинства приложений важно, содержит ли строка какие-либо данные, и это можно определить с помощью функции isEmpty().
См. также isEmpty().
bool QString::isRightToLeft() const
Возвращает true, если строка читается справа налево.
int QString::lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает индекс последнего вхождения строки str в этой строке, выполняя поиск назад с индекса from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, то с предпоследнего символа и так далее. Возвращает -1, если str не найдено.
Если 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
См. также indexOf(), contains() и count().
int QString::lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего вхождения символа ch, выполняя поиск назад с позиции from.
int QString::lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего вхождения строки str в этой строке, выполняя поиск назад с индекса from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, то с предпоследнего символа и так далее. Возвращает -1, если str не найдено.
Если 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 4.5.
См. также indexOf(), contains() и count().
int QString::lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего вхождения ссылки на строку str в этой строке, выполняя поиск назад с индекса from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, то с предпоследнего символа и так далее. Возвращает -1, если str не найдено.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае — регистронезависимый.
Эта функция была добавлена в Qt 4.8.
См. также indexOf(), contains() и count().
int QString::lastIndexOf(const QRegExp &rx, int from = -1) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего соответствия регулярному выражению rx в строке, выполняя поиск назад с индекса from. Возвращает -1, если rx нигде не совпало.
Пример:
QString str = "the minimum";
str.lastIndexOf(QRegExp("m[aeiou]")); // returns 8 int QString::lastIndexOf(QRegExp &rx, int from = -1) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего соответствия регулярному выражению rx в строке, выполняя поиск назад с индекса from. Возвращает -1, если rx нигде не совпало.
Если совпадение найдено, регулярное выражение rx будет содержать сопоставленные группы (см. QRegExp::matchedLength, QRegExp::cap).
Пример:
QString str = "the minimum";
str.lastIndexOf(QRegExp("m[aeiou]")); // returns 8 Эта функция была добавлена в Qt 4.5.
int QString::lastIndexOf(const QRegularExpression &re, int from = -1) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего совпадения регулярного выражения re в строке, начинающегося перед индексом from. Возвращает -1, если re нигде не совпало.
Пример:
QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]")); // returns 8 Эта функция была добавлена в Qt 5.0.
int QString::lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const
Это перегруженная функция.
Возвращает индекс последнего совпадения регулярного выражения re в строке, начинающегося перед индексом from. Возвращает -1, если re нигде не совпало.
Если совпадение найдено и rmatch не равен null, оно также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.
Пример:
QString str = "the minimum";
QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match); // returns 8
// match.captured() == mu Эта функция была добавлена в Qt 5.5.
QString QString::left(int n) const
Возвращает подстроку, содержащую n левых символов строки.
Возвращается вся строка, если n больше или равно size(), или меньше нуля.
QString x = "Pineapple"; QString y = x.left(4); // y == "Pine"
См. также right(), mid() и startsWith().
QString QString::leftJustified(int width, QChar fill = QLatin1Char( ' ' ), bool truncate = false) const
Возвращает строку длины width, содержащую эту строку, дополненную символом fill.
Если truncate равно false и size() строки больше width, то возвращаемая строка является копией исходной строки.
QString s = "apple"; QString t = s.leftJustified(8, '.'); // t == "apple..."
Если truncate равно true и size() строки больше width, то любые символы в копии строки после позиции width удаляются, и возвращается копия.
QString str = "Pineapple"; str = str.leftJustified(5, '.', true); // str == "Pinea"
См. также rightJustified().
QStringRef QString::leftRef(int n) const
Возвращает ссылку на подстроку, содержащую n левых символов строки.
Если n больше или равно size(), или меньше нуля, возвращается ссылка на всю строку.
QString x = "Pineapple"; QStringRef y = x.leftRef(4); // y == "Pine"
Эта функция была добавлена в Qt 4.4.
См. также left(), rightRef(), midRef() и startsWith().
int QString::length() const
Возвращает количество символов в этой строке. Эквивалентно size().
См. также resize().
[static] int QString::localeAwareCompare(const QString &s1, const QString &s2)
Сравнивает s1 и s2 и возвращает целое число, меньшее, равное или больше нуля, если s1 меньше, равна или больше s2.
Сравнение выполняется в зависимости от локали и платформы. Используйте эту функцию для отображения отсортированных списков строк пользователю.
В macOS и iOS эта функция сравнивает строки в соответствии с настройкой «Порядок для сортировки списков» в панели «Международные настройки».
См. также compare() и QLocale.
int QString::localeAwareCompare(const QString &other) const
Эта функция перегружает localeAwareCompare().
Сравнивает эту строку с other строкой и возвращает целое число, меньшее, равное или больше нуля, если эта строка меньше, равна или больше other строки.
Сравнение выполняется в зависимости от локали и платформы. Используйте эту функцию для отображения отсортированных списков строк пользователю.
То же, что и localeAwareCompare(*this, other).
int QString::localeAwareCompare(const QStringRef &other) const
Эта функция перегружает localeAwareCompare().
Сравнивает эту строку с другой строкой other и возвращает целое число меньше, равно или больше нуля, если эта строка меньше, равна или больше строки other.
Сравнение выполняется в зависимости от локали и платформы. Используйте эту функцию для представления отсортированных списков строк пользователю.
То же, что и localeAwareCompare(*this, other).
Функция была представлена в Qt 4.5.
[static] int QString::localeAwareCompare(const QString &s1, const QStringRef &s2)
Эта функция перегружает localeAwareCompare().
Сравнивает s1 с s2 и возвращает целое число меньше, равно или больше нуля, если s1 меньше, равна или больше s2.
Сравнение выполняется в зависимости от локали и платформы. Используйте эту функцию для представления отсортированных списков строк пользователю.
Функция была представлена в Qt 4.5.
QString QString::mid(int position, int n = -1) const
Возвращает строку, содержащую n символов этой строки, начиная с указанного индекса position.
Возвращает пустую строку, если индекс position превышает длину строки. Если доступно меньше n символов в строке, начиная с заданного position, или если n равно -1 (по умолчанию), функция возвращает все доступные символы, начиная с указанного position.
Пример:
QString x = "Nine pineapples"; QString y = x.mid(5, 4); // y == "pine" QString z = x.mid(5); // z == "pineapples"
QStringRef QString::midRef(int position, int n = -1) const
Возвращает ссылку на подстроку длиной n символов этой строки, начиная с указанного position.
Если position превышает длину строки, возвращается нулевая ссылка.
Если доступно меньше n символов в строке, начиная с заданного position, или если n равно -1 (по умолчанию), функция возвращает все символы с указанного position.
Пример:
QString x = "Nine pineapples"; QStringRef y = x.midRef(5, 4); // y == "pine" QStringRef z = x.midRef(5); // z == "pineapples"
Функция была представлена в Qt 4.4.
См. также mid(), leftRef() и rightRef().
QString QString::normalized(NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const
Возвращает строку в заданном режиме Unicode нормализации mode, в соответствии с заданной version стандарта Unicode.
[static] QString QString::number(long n, int base = 10)
Возвращает строковое представление числа n в соответствии с заданным основанием base.
Основание по умолчанию равно 10 и должно быть в диапазоне от 2 до 36. Для оснований, отличных от 10, n рассматривается как целое без знака.
Форматирование всегда использует QLocale::C, т.е. английский/США. Для получения локализованного строкового представления числа используйте 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(uint n, int base = 10)
Это перегруженная функция.
[static] QString QString::number(int n, int base = 10)
Это перегруженная функция.
[static] QString QString::number(ulong 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(double n, char format = 'g', int precision = 6)
Возвращает строковое представление числа n, отформатированное в соответствии со спецификациями format и precision. Подробности см. в разделе Форматы аргументов.
В отличие от QLocale::toString(), эта функция не учитывает настройки локали пользователя.
См. также setNum() и QLocale::toString().
QString &QString::prepend(const QString &str)
Добавляет строку str в начало этой строки и возвращает ссылку на эту строку.
Пример:
QString x = "ship"; QString y = "air"; x.prepend(y); // x == "airship"
См. также append() и insert().
QString &QString::prepend(const QChar *str, int len)
Эта функция перегружает prepend().
Добавляет len символов из массива QChar str в начало этой строки и возвращает ссылку на эту строку.
Функция была представлена в Qt 5.5.
QString &QString::prepend(QChar ch)
Эта функция перегружает prepend().
Добавляет символ ch в начало этой строки.
QString &QString::prepend(const QStringRef &str)
Эта функция перегружает prepend().
Добавляет ссылку на строку str в начало этой строки и возвращает ссылку на эту строку.
Функция была представлена в Qt 5.5.
QString &QString::prepend(QLatin1String str)
Эта функция перегружает prepend().
Добавляет строку Latin-1 str в начало этой строки.
QString &QString::prepend(const char *str)
Эта функция перегружает prepend().
Добавляет строку str в начало этой строки. Указатель на строку const char преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
QString &QString::prepend(const QByteArray &ba)
Эта функция перегружает prepend().
Добавляет массив байтов ba в начало этой строки. Массив байтов преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
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 в начало этой строки.
reverse_iterator QString::rbegin()
Возвращает обратный итератор STL, указывающий на первый символ в строке в обратном порядке.
Данная функция была добавлена в Qt 5.6.
См. также begin(), crbegin() и rend().
const_reverse_iterator QString::rbegin() const
Это перегруженная функция.
Данная функция была добавлена в Qt 5.6.
QString &QString::remove(int position, int n)
Удаляет n символов из строки, начиная с указанного индекса position, и возвращает ссылку на строку.
Если указанный индекс position находится внутри строки, но position + n выходит за пределы строки, строка обрезается до указанного индекса position.
QString s = "Montreal"; s.remove(1, 4); // s == "Meal"
См. также insert() и replace().
QString &QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Удаляет все вхождения символа ch в этой строке и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Пример:
QString t = "Ali Baba";
t.remove(QChar('a'), Qt::CaseInsensitive);
// t == "li Bb" Это то же самое, что и replace(ch, "", cs).
См. также replace().
QString &QString::remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Удаляет все вхождения заданной строки str в этой строке и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Это то же самое, что и replace(str, "", cs).
См. также replace().
QString &QString::remove(const QRegExp &rx)
Удаляет все вхождения регулярного выражения rx в строке и возвращает ссылку на строку. Например:
QString r = "Telephone";
r.remove(QRegExp("[aeiou]."));
// r == "The" См. также indexOf(), lastIndexOf() и replace().
QString &QString::remove(const QRegularExpression &re)
Удаляет все вхождения регулярного выражения re в строке и возвращает ссылку на строку. Например:
QString r = "Telephone";
r.remove(QRegularExpression("[aeiou]."));
// r == "The" Данная функция была добавлена в Qt 5.0.
См. также indexOf(), lastIndexOf() и replace().
reverse_iterator QString::rend()
Возвращает STL-стиль обратного итератора, указывающего на позицию после последнего символа в строке в обратном порядке.
Данная функция была добавлена в Qt 5.6.
См. также end(), crend() и rbegin().
const_reverse_iterator QString::rend() const
Это перегруженная функция.
Данная функция была добавлена в Qt 5.6.
QString QString::repeated(int times) const
Возвращает копию этой строки, повторенную указанное количество раз times.
Если times меньше 1, возвращается пустая строка.
Пример:
QString str("ab");
str.repeated(4); // returns "abababab" Данная функция была добавлена в Qt 4.5.
QString &QString::replace(int position, int n, const QString &after)
Заменяет n символов, начиная с индекса position, строкой after и возвращает ссылку на эту строку.
Примечание: Если указанный индекс position находится в строке, но position + n выходит за пределы диапазона строки, то n будет скорректирован, чтобы остановиться на конце строки.
Пример:
QString x = "Say yes!"; QString y = "no"; x.replace(4, 3, y); // x == "Say no!"
См. также insert() и remove().
QString &QString::replace(int position, int n, const QChar *unicode, int size)
Эта функция перегружает replace().
Заменяет n символов, начиная с индекса position, первыми size символами массива QChar unicode и возвращает ссылку на эту строку.
QString &QString::replace(int position, int n, QChar after)
Эта функция перегружает replace().
Заменяет n символов, начиная с индекса position, символом after и возвращает ссылку на эту строку.
QString &QString::replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет все вхождения символа before символом after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
QString &QString::replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет каждое вхождение первых blen символов before первыми alen символами after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Данная функция была добавлена в Qt 4.5.
QString &QString::replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет все вхождения строки before строкой after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Примечание: Текст не перепроверяется после замены.
Данная функция была добавлена в Qt 4.5.
QString &QString::replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет все вхождения строки before строкой after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Примечание: Текст не перепроверяется после замены.
Данная функция была добавлена в Qt 4.5.
QString &QString::replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет все вхождения строки before строкой after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Примечание: Текст не перепроверяется после замены.
Данная функция была добавлена в Qt 4.5.
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" QString &QString::replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет все вхождения символа ch в строке на after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
QString &QString::replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет все вхождения символа c строкой after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.
Примечание: Текст не перепроверяется после замены.
Функция была введена в Qt 4.5.
QString &QString::replace(const QRegExp &rx, const QString &after)
Эта функция перегружает replace().
Заменяет все вхождения регулярного выражения rx в строке на after. Возвращает ссылку на строку. Например:
QString s = "Banana";
s.replace(QRegExp("a[mn]"), "ox");
// s == "Boxoxa" Для регулярных выражений, содержащих группы захвата, вхождения \1, \2, ..., в after заменяются на rx.cap(1), cap(2), ...
QString t = "A <i>bon mot</i>.";
t.replace(QRegExp("<i>([^<]*)</i>"), "\\emph{\\1}");
// t == "A \\emph{bon mot}." См. также indexOf(), lastIndexOf(), remove(), и QRegExp::cap().
QString &QString::replace(const QRegularExpression &re, const QString &after)
Эта функция перегружает replace().
Заменяет все вхождения регулярного выражения re в строке на after. Возвращает ссылку на строку. Например:
QString s = "Banana";
s.replace(QRegularExpression("a[mn]"), "ox");
// s == "Boxoxa" Для регулярных выражений, содержащих группы захвата, вхождения \1, \2, ..., в after заменяются на подстроку, захваченную соответствующей группой захвата.
QString t = "A <i>bon mot</i>.";
t.replace(QRegularExpression("<i>([^<]*)</i>"), "\\emph{\\1}");
// t == "A \\emph{bon mot}." Функция была введена в Qt 5.0.
См. также indexOf(), lastIndexOf(), remove(), QRegularExpression и QRegularExpressionMatch.
void QString::reserve(int size)
Попытка выделить память для как минимум size символов. Если заранее известно, какой будет размер строки, можно вызвать эту функцию. Если вы часто изменяете размер строки, это может улучшить производительность. Если size является заниженной оценкой, худшее, что может произойти, это то, что QString будет немного медленнее.
Единственная цель этой функции — предоставить способ тонкой настройки использования памяти QString. В общем случае, вам редко понадобится вызывать эту функцию. Если вы хотите изменить размер строки, используйте resize().
Функция полезна для кода, которому нужно создавать длинную строку и который хочет избежать многократного перераспределения памяти. В данном примере мы хотим добавлять в строку, пока не будет выполнено некоторое условие true, и мы достаточно уверены, что размер достаточно велик, чтобы сделать вызов reserve() целесообразным:
QString result;
int maxSize;
bool condition;
QChar nextChar;
result.reserve(maxSize);
while (condition)
result.append(nextChar);
result.squeeze(); См. также squeeze() и capacity().
void QString::resize(int size)
Устанавливает размер строки в size символов.
Если size больше текущего размера, строка расширяется до size символов, и дополнительные символы добавляются в конец. Новые символы не инициализируются.
Если size меньше текущего размера, символы удаляются с конца.
Пример:
QString s = "Hello world"; s.resize(5); // s == "Hello" s.resize(8); // s == "Hello???" (where ? stands for any character)
Если вы хотите добавить определенное количество одинаковых символов в строку, используйте operator+=() следующим образом, а не resize():
QString t = "Hello"; t += QString(10, 'X'); // t == "HelloXXXXXXXXXX"
Если вы хотите расширить строку до определенной ширины и заполнить новые позиции определенным символом, используйте функцию leftJustified():
Если size отрицательное, это эквивалентно передаче нуля.
QString r = "Hello"; r = r.leftJustified(10, ' '); // r == "Hello "
См. также truncate() и reserve().
QString QString::right(int n) const
Возвращает подстроку, содержащую n правых символов строки.
Возвращается вся строка, если n больше или равно size() или меньше нуля.
QString x = "Pineapple"; QString y = x.right(5); // y == "apple"
См. также left(), mid() и endsWith().
QString QString::rightJustified(int width, QChar fill = QLatin1Char( ' ' ), bool truncate = false) const
Возвращает строку размера width, содержащую символ fill, после которого следует исходная строка. Например:
QString s = "apple"; QString t = s.rightJustified(8, '.'); // t == "...apple"
Если truncate равно false и размер строки больше width, то возвращаемая строка является копией исходной строки.
Если truncate равно true и размер строки больше width, то результирующая строка усечена до позиции width.
QString str = "Pineapple"; str = str.rightJustified(5, '.', true); // str == "Pinea"
См. также leftJustified().
QStringRef QString::rightRef(int n) const
Возвращает ссылку на подстроку, содержащую n правых символов строки.
Если n больше или равно size() или меньше нуля, возвращается ссылка на всю строку.
QString x = "Pineapple"; QStringRef y = x.rightRef(5); // y == "apple"
Функция была введена в Qt 4.4.
См. также right(), leftRef(), midRef() и endsWith().
QString QString::section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const
Эта функция возвращает часть строки.
Эта строка рассматривается как последовательность полей, разделенных символом sep. Возвращаемая строка состоит из полей с позиции start до позиции end включительно. Если end не указан, включаются все поля от позиции start до конца строки. Поля нумеруются 0, 1, 2 и т. д., считая слева, и -1, -2 и т. д., считая справа налево.
Аргумент flags может быть использован для изменения некоторых аспектов поведения функции, например, чувствительность к регистру, пропуск пустых полей и обработка ведущих и хвостовых разделителей; см. SectionFlags.
QString str;
QString csv = "forename,middlename,surname,phone";
QString path = "/usr/local/bin/myapp"; // First field is empty
QString::SectionFlag flag = QString::SectionSkipEmpty;
str = csv.section(',', 2, 2); // str == "surname"
str = path.section('/', 3, 4); // str == "bin/myapp"
str = path.section('/', 3, 3, flag); // str == "myapp" Если start или end отрицательны, поля считаются справа от строки, правое поле — -1, следующее от правого — -2 и т. д.
str = csv.section(',', -3, -2); // str == "middlename,surname"
str = path.section('/', -1); // str == "myapp" См. также split().
QString QString::section(const QString &sep, int start, int end = -1, 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::section(const QRegExp ®, int start, int end = -1, SectionFlags flags = SectionDefault) const
Эта функция перегружает section().
Эта строка рассматривается как последовательность полей, разделенных регулярным выражением reg.
QString line = "forename\tmiddlename surname \t \t phone";
QRegExp sep("\\s+");
str = line.section(sep, 2, 2); // str == "surname"
str = line.section(sep, -3, -2); // str == "middlename surname" Предупреждение: Использование версии с QRegExp значительно дороже, чем перегруженные версии со строками и символами.
См. также split() и simplified().
QString QString::section(const QRegularExpression &re, int start, int end = -1, 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 значительно дороже, чем перегруженные версии для строк и символов.
Эта функция была введена в Qt 5.0.
См. также split() и simplified().
QString &QString::setNum(int n, int base = 10)
Устанавливает строку в значение n, выведенное в указанной системе счисления base, и возвращает ссылку на строку.
По умолчанию base = 10, и он должен быть в диапазоне от 2 до 36. Для систем счисления, отличных от 10, n обрабатывается как беззнаковое целое число.
QString str; str.setNum(1234); // str == "1234"
Форматирование всегда использует QLocale::C, т. е. английский (США). Чтобы получить локальное строковое представление числа, используйте QLocale::toString() с соответствующей локалью.
QString &QString::setNum(ushort n, int base = 10)
Это перегруженная функция.
QString &QString::setNum(short n, int base = 10)
Это перегруженная функция.
QString &QString::setNum(uint n, int base = 10)
Это перегруженная функция.
QString &QString::setNum(long n, int base = 10)
Это перегруженная функция.
QString &QString::setNum(ulong n, int base = 10)
Это перегруженная функция.
QString &QString::setNum(qlonglong n, int base = 10)
Это перегруженная функция.
QString &QString::setNum(qulonglong n, int base = 10)
Это перегруженная функция.
QString &QString::setNum(float n, char format = 'g', int precision = 6)
Это перегруженная функция.
Устанавливает строку в значение n, отформатированное в соответствии с заданным format и precision, и возвращает ссылку на строку.
Форматирование всегда использует QLocale::C, т. е. английский (США). Чтобы получить локальное строковое представление числа, используйте QLocale::toString() с соответствующей локалью.
QString &QString::setNum(double n, char format = 'g', int precision = 6)
Это перегруженная функция.
Устанавливает строку в значение n, отформатированное в соответствии с заданным format и precision, и возвращает ссылку на строку.
format может быть 'e', 'E', 'f', 'g' или 'G' (см. Форматы аргументов для объяснения форматов).
Форматирование всегда использует QLocale::C, т. е. английский (США). Чтобы получить локальное строковое представление числа, используйте QLocale::toString() с соответствующей локалью.
QString &QString::setRawData(const QChar *unicode, int size)
Сбрасывает QString на использование первых size символов Юникода в массиве unicode. Данные в unicode не копируются. Вызывающий код должен гарантировать, что unicode не будет удален или изменен до тех пор, пока существует QString (или неизменная копия).
Эта функция может быть использована вместо fromRawData() для повторного использования существующих объектов QString, чтобы сохранить память от перевыделений.
Эта функция была введена в Qt 4.7.
См. также fromRawData().
QString &QString::setUnicode(const QChar *unicode, int size)
Изменяет размер строки на size символов и копирует unicode в строку.
Если unicode равен 0, ничего не копируется, но размер строки всё равно изменяется на size.
См. также unicode() и setUtf16().
QString &QString::setUtf16(const ushort *unicode, int size)
Изменяет размер строки на size символов и копирует unicode в строку.
Если unicode равен 0, ничего не копируется, но размер строки всё равно изменяется на size.
Обратите внимание, что в отличие от fromUtf16(), эта функция не учитывает BOM и, возможно, различающиеся порядки байтов.
См. также utf16() и setUnicode().
QString QString::simplified() const
Возвращает строку, из которой удалены начальные и конечные пробелы, а все последовательности внутренних пробелов заменены одним пробелом.
Пробелы — это любой символ, для которого 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().
int QString::size() const
Возвращает количество символов в этой строке.
Последний символ в строке находится в позиции size() - 1. Кроме того, QString гарантирует, что символ в позиции size() всегда равен '\0', так что вы можете использовать возвращаемое значение data() и constData() в качестве аргументов функциям, которые ожидают строки, завершающиеся '\0'.
Пример:
QString str = "World"; int n = str.size(); // n == 5 str.data()[0]; // returns 'W' str.data()[4]; // returns 'd' str.data()[5]; // returns '\0'
См. также isEmpty() и resize().
QStringList QString::split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Разбивает строку на подстроки в местах, где встречается sep, и возвращает список этих строк. Если sep нигде не совпадает в строке, split() возвращает список из одной строки, содержащей эту строку.
cs определяет, совпадает ли sep чувствительно или нечувствительно к регистру.
Если behavior имеет значение QString::SkipEmptyParts, пустые элементы не отображаются в результате. По умолчанию пустые элементы сохраняются.
Пример:
QString str = "a,,b,c";
QStringList list1 = str.split(',');
// list1: [ "a", "", "b", "c" ]
QStringList list2 = str.split(',', QString::SkipEmptyParts);
// list2: [ "a", "b", "c" ] См. также QStringList::join() и section().
QStringList QString::split(QChar sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Это перегруженная функция.
QStringList QString::split(const QRegExp &rx, SplitBehavior behavior = KeepEmptyParts) const
Это перегруженная функция.
Разбивает строку на подстроки в местах соответствия регулярному выражению rx и возвращает список этих строк. Если rx нигде не соответствует в строке, split() возвращает список из одной строки, содержащей эту строку.
Вот пример, где мы извлекаем слова в предложении, используя один или несколько пробелов в качестве разделителя:
QString str;
QStringList list;
str = "Some text\n\twith strange whitespace.";
list = str.split(QRegExp("\\s+"));
// list: [ "Some", "text", "with", "strange", "whitespace." ] Вот похожий пример, но на этот раз мы используем любую последовательность несловесных символов в качестве разделителя:
str = "This time, a normal English sentence.";
list = str.split(QRegExp("\\W+"), QString::SkipEmptyParts);
// list: [ "This", "time", "a", "normal", "English", "sentence" ] Вот третий пример, где мы используем утверждение нулевой длины \b (граница слова), чтобы разделить строку на чередующуюся последовательность несловесных и словесных токенов:
str = "Now: this sentence fragment.";
list = str.split(QRegExp("\\b"));
// list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ] См. также QStringList::join() и section().
QStringList QString::split(const QRegularExpression &re, SplitBehavior behavior = KeepEmptyParts) const
Это перегруженный функцией.
Разделяет строку на подстроки там, где совпадает регулярное выражение re, и возвращает список этих строк. Если re не совпадает нигде в строке, split() возвращает список, содержащий эту строку.
Вот пример, где мы извлекаем слова в предложении, используя один или несколько пробелов в качестве разделителя:
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+"), QString::SkipEmptyParts);
// list: [ "This", "time", "a", "normal", "English", "sentence" ] Вот третий пример, где мы используем утверждение нулевой длины \b (граница слова), чтобы разбить строку на чередующуюся последовательность несловных и словных токенов:
str = "Now: this sentence fragment.";
list = str.split(QRegularExpression("\\b"));
// list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ] Эта функция была представлена в Qt 5.0.
См. также QStringList::join() и section().
QVector<QStringRef> QString::splitRef(const QString &sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Разделяет строку на подстроки-ссылки там, где встречается sep, и возвращает список этих строк. Если sep не совпадает нигде в строке, splitRef() возвращает вектор с единственной ссылкой на эту строку.
cs указывает, следует ли соответствие sep чувствительно или нечувствительно к регистру.
Если behavior равно QString::SkipEmptyParts, пустые записи не отображаются в результате. По умолчанию пустые записи сохраняются.
Примечание: Все ссылки действительны, пока эта строка существует. Уничтожение этой строки приведет к тому, что все ссылки станут висячими указателями.
Эта функция была представлена в Qt 5.4.
См. также QStringRef и split().
QVector<QStringRef> QString::splitRef(QChar sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Это перегруженный функцией.
Эта функция была представлена в Qt 5.4.
QVector<QStringRef> QString::splitRef(const QRegExp &rx, SplitBehavior behavior = KeepEmptyParts) const
Это перегруженный функцией.
Разделяет строку на подстроки-ссылки там, где совпадает регулярное выражение rx, и возвращает список этих строк. Если rx не совпадает нигде в строке, splitRef() возвращает вектор с единственной ссылкой на эту строку.
Примечание: Все ссылки действительны, пока эта строка существует. Уничтожение этой строки приведет к тому, что все ссылки станут висячими указателями.
Эта функция была представлена в Qt 5.4.
См. также QStringRef и split().
QVector<QStringRef> QString::splitRef(const QRegularExpression &re, SplitBehavior behavior = KeepEmptyParts) const
Это перегруженный функцией.
Разделяет строку на подстроки-ссылки там, где совпадает регулярное выражение re, и возвращает список этих строк. Если re не совпадает нигде в строке, splitRef() возвращает вектор с единственной ссылкой на эту строку.
Примечание: Все ссылки действительны, пока эта строка существует. Уничтожение этой строки приведет к тому, что все ссылки станут висячими указателями.
См. также split() и QStringRef.
void QString::squeeze()
Освобождает память, не необходимую для хранения данных символов.
Единственная цель этой функции — предоставить средство для тонкой настройки использования памяти QString. Как правило, вам редко придется вызывать эту функцию.
См. также reserve() и capacity().
bool QString::startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true, если строка начинается с s; в противном случае возвращает false.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск чувствителен к регистру; в противном случае поиск нечувствителен к регистру.
QString str = "Bananas";
str.startsWith("Ban"); // returns true
str.startsWith("Car"); // returns false См. также endsWith().
bool QString::startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Это перегруженный функцией.
Возвращает true, если строка начинается с ссылки на строку s; в противном случае возвращает false.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск чувствителен к регистру; в противном случае поиск нечувствителен к регистру.
Эта функция была представлена в Qt 4.8.
См. также endsWith().
bool QString::startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает startsWith().
bool QString::startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает startsWith().
Возвращает true, если строка начинается с c; в противном случае возвращает false.
void QString::swap(QString &other)
Меняет местами строки other и этой строки. Эта операция очень быстрая и никогда не завершается неудачно.
Эта функция была представлена в Qt 4.8.
CFStringRef QString::toCFString() const
Создает CFString из QString. Вызывающий владеет CFString и отвечает за его освобождение.
Примечание: эта функция доступна только на macOS и iOS.
Эта функция была представлена в Qt 5.2.
QString QString::toCaseFolded() const
Возвращает эквивалент строки с учетом регистровых различий. Для большинства символов Юникода это то же самое, что и toLower().
double QString::toDouble(bool *ok = Q_NULLPTR) const
Возвращает строку, преобразованную в значение с плавающей запятой.
Возвращает 0.0, если преобразование не удается.
Если произошла ошибка преобразования, *ok устанавливается в значение false; в противном случае *ok устанавливается в true.
QString str = "1234.56"; double val = str.toDouble(); // val == 1234.56
Предупреждение: Содержимое QString может содержать только допустимые числовые символы, включая знак плюс/минус, символы g и e, используемые в экспоненциальной записи, и десятичную точку. Включение единицы или дополнительных символов приводит к ошибке преобразования.
bool ok; double d; d = QString( "1234.56e-02" ).toDouble(&ok); // ok == true, d == 12.3456
Преобразование строки всегда происходит в локали '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().
float QString::toFloat(bool *ok = Q_NULLPTR) const
Возвращает строку, преобразованную в значение типа float.
Если произошла ошибка преобразования, *ok устанавливается в false; в противном случае *ok устанавливается в true. Возвращает 0.0, если преобразование не удается.
Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте 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
См. также number(), toDouble(), toInt(), и QLocale::toFloat().
QString QString::toHtmlEscaped() const
Преобразует строку простого текста в HTML-строку, заменяя HTML-спецсимволы <, >, & и " соответствующими HTML-сущностями.
Пример:
QString plain = "#include <QtCore>" QString html = plain.toHtmlEscaped(); // html == "#include <QtCore>"
Эта функция была представлена в Qt 5.0.
int QString::toInt(bool *ok = Q_NULLPTR, int base = 10) const
Возвращает строку, преобразованную в int с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.
Если происходит ошибка преобразования, *ok устанавливается в false; в противном случае *ok устанавливается в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "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
См. также number(), toUInt(), toDouble(), и QLocale::toInt().
QByteArray QString::toLatin1() const
Возвращает представление строки в кодировке Latin-1 в виде QByteArray.
Возвращаемый массив байтов не определен, если строка содержит символы, не поддерживаемые Latin-1. Эти символы могут быть подавлены или заменены вопросительным знаком.
См. также fromLatin1(), toUtf8(), toLocal8Bit(), и QTextCodec.
QByteArray QString::toLocal8Bit() const
Возвращает локальное 8-битное представление строки в виде QByteArray. Возвращаемый массив байтов не определен, если строка содержит символы, не поддерживаемые локальной 8-битной кодировкой.
QTextCodec::codecForLocale() используется для выполнения преобразования из Юникода. Если кодировка локали не может быть определена, эта функция делает то же, что и toLatin1().
Если эта строка содержит символы, которые не могут быть закодированы в локальной кодировке, возвращаемый массив байтов не определен. Эти символы могут быть подавлены или заменены другим.
См. также fromLocal8Bit(), toLatin1(), toUtf8(), и QTextCodec.
long QString::toLong(bool *ok = Q_NULLPTR, int base = 10) const
Возвращает строку, преобразованную в long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.
Если происходит ошибка преобразования, *ok устанавливается в false; в противном случае *ok устанавливается в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "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
См. также number(), toULong(), toInt(), и QLocale::toInt().
qlonglong QString::toLongLong(bool *ok = Q_NULLPTR, int base = 10) const
Возвращает строку, преобразованную в long long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.
Если происходит ошибка преобразования, *ok устанавливается в false; в противном случае *ok устанавливается в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "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
См. также 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
Создает NSString из QString. NSString автоматически освобождается.
Примечание: эта функция доступна только на macOS и iOS.
Эта функция была добавлена в Qt 5.2.
short QString::toShort(bool *ok = Q_NULLPTR, int base = 10) const
Возвращает строку, преобразованную в short с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.
Если происходит ошибка преобразования, *ok устанавливается в false; в противном случае *ok устанавливается в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "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
См. также number(), toUShort(), toInt(), и QLocale::toShort().
std::string QString::toStdString() const
Возвращает объект std::string с данными, содержащимися в этом QString. Данные Юникода преобразуются в символы 8-бит с помощью функции toUtf8().
Этот метод в основном полезен для передачи QString функции, которая принимает объект std::string.
См. также toLatin1(), toUtf8(), toLocal8Bit(), и QByteArray::toStdString().
std::u16string QString::toStdU16String() const
Возвращает объект std::u16string с данными, содержащимися в этом QString. Данные Юникода такие же, как возвращает метод utf16().
Эта функция была добавлена в Qt 5.5.
См. также utf16(), toStdWString(), и toStdU32String().
std::u32string QString::toStdU32String() const
Возвращает объект std::u32string с данными, содержащимися в этом QString. Данные Юникода такие же, как возвращает метод toUcs4().
Эта функция была добавлена в Qt 5.5.
См. также toUcs4(), toStdWString(), и toStdU16String().
std::wstring QString::toStdWString() const
Возвращает объект std::wstring с данными, содержащимися в этом QString. std::wstring закодирован в utf16 на платформах, где wchar_t имеет ширину 2 байта (например, Windows), и в ucs4 на платформах, где wchar_t имеет ширину 4 байта (большинство систем Unix).
Этот метод в основном полезен для передачи QString функции, которая принимает объект std::wstring.
См. также utf16(), toLatin1(), toUtf8(), toLocal8Bit(), toStdU16String(), и toStdU32String().
uint QString::toUInt(bool *ok = Q_NULLPTR, int base = 10) const
Возвращает строку, преобразованную в unsigned int с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.
Если происходит ошибка преобразования, *ok устанавливается в false; в противном случае *ok устанавливается в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "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
См. также number(), toInt(), и QLocale::toUInt().
ulong QString::toULong(bool *ok = Q_NULLPTR, int base = 10) const
Возвращает строку, преобразованную в unsigned long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.
Если происходит ошибка преобразования, *ok устанавливается в false; в противном случае *ok устанавливается в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "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
См. также number() и QLocale::toUInt().
qulonglong QString::toULongLong(bool *ok = Q_NULLPTR, int base = 10) const
Возвращает строку, преобразованную в unsigned long long с основанием base, по умолчанию равным 10 и значением от 2 до 36, или 0. Возвращает 0, если преобразование не удалось.
Если произошла ошибка преобразования, *ok устанавливается в false; в противном случае *ok устанавливается в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "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
См. также number(), toLongLong(), и QLocale::toULongLong().
ushort QString::toUShort(bool *ok = Q_NULLPTR, int base = 10) const
Возвращает строку, преобразованную в unsigned short с основанием base, по умолчанию равным 10 и значением от 2 до 36, или 0. Возвращает 0, если преобразование не удалось.
Если произошла ошибка преобразования, *ok устанавливается в false; в противном случае *ok устанавливается в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "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
См. также number(), toShort(), и QLocale::toUShort().
QVector<uint> QString::toUcs4() const
Возвращает представление строки в формате UCS-4/UTF-32 как QVector<uint>.
UCS-4 — это кодек Unicode, поэтому он без потерь. Все символы из этой строки будут закодированы в UCS-4. Любая недопустимая последовательность кодовых единиц в этой строке заменяется замещающим символом Unicode (QChar::ReplacementCharacter, который соответствует U+FFFD).
Возвращаемый вектор не завершается нулём.
Эта функция была введена в Qt 4.2.
См. также fromUtf8(), toUtf8(), toLatin1(), toLocal8Bit(), QTextCodec, 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 и может представлять все символы в строке Unicode, такой как QString.
См. также fromUtf8(), toLatin1(), toLocal8Bit(), и QTextCodec.
int QString::toWCharArray(wchar_t *array) const
Заполняет array данными, содержащимися в этом объекте QString. Массив закодирован в UTF-16 на платформах, где wchar_t имеет ширину 2 байта (например, Windows), и в UCS-4 на платформах, где wchar_t имеет ширину 4 байта (большинство систем Unix).
array должен быть выделен вызывающей стороной и содержать достаточно места для хранения всей строки (выделение массива с такой же длиной, как у строки, всегда достаточно).
Эта функция возвращает фактическую длину строки в array.
Примечание: Эта функция не добавляет нулевой символ в конец массива.
Эта функция была введена в Qt 4.2.
См. также utf16(), toUcs4(), toLatin1(), toUtf8(), toLocal8Bit(), и toStdWString().
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(int position)
Усекает строку в заданной позиции индекса position.
Если указанный индекс position выходит за пределы строки, ничего не происходит.
Пример:
QString str = "Vladivostok"; str.truncate(4); // str == "Vlad"
Если position отрицательный, это эквивалентно передаче нуля.
См. также chop(), resize(), left(), и QStringRef::truncate().
const QChar *QString::unicode() const
Возвращает строку в представлении Unicode с завершающим '\0'. Результат остается действительным до тех пор, пока строка не будет изменена.
См. также setUnicode() и utf16().
const ushort *QString::utf16() const
Возвращает QString как массив беззнаковых целых чисел с завершающим '\0'. Результат остается действительным до тех пор, пока строка не будет изменена.
Возвращаемая строка находится в порядке байтов хоста.
См. также setUtf16() и unicode().
[static] QString QString::vasprintf(const char *cformat, va_list ap)
Эквивалентный метод asprintf(), но принимает va_list ap вместо списка аргументов. См. документацию asprintf() для объяснения cformat.
Этот метод не вызывает макрос va_end, вызывающая сторона отвечает за вызов va_end для ap.
Эта функция была введена в Qt 5.5.
См. также asprintf().
bool QString::operator!=(QLatin1String other) const
Возвращает true, если эта строка не равна строке параметра other. В противном случае возвращает false.
Эта функция перегружает оператор!=().
bool QString::operator!=(const char *other) const
Эта функция перегружает operator!=().
Указатель other const char преобразуется в QString с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
bool QString::operator!=(const QByteArray &other) const
Эта функция перегружает operator!=().
Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов есть какие-либо нулевые символы ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
QString &QString::operator+=(const QString &other)
Добавляет строку other к концу этой строки и возвращает ссылку на эту строку.
Пример:
QString x = "free"; QString y = "dom"; x += y; // x == "freedom"
Эта операция обычно очень быстрая (постоянное время), потому что QString предварительно выделяет дополнительное место в конце данных строки, чтобы она могла увеличиваться без перераспределения всей строки каждый раз.
См. также append() и prepend().
QString &QString::operator+=(QChar ch)
Эта функция перегружает operator+=().
Добавляет символ ch в строку.
QString &QString::operator+=(const QStringRef &str)
Эта функция перегружает operator+=().
Добавляет фрагмент строки, на который ссылается str, к этой строке.
QString &QString::operator+=(QLatin1String str)
Эта функция перегружает operator+=().
Добавляет строку Latin-1 str к этой строке.
QString &QString::operator+=(const char *str)
Эта функция перегружает operator+=().
Добавляет строку str к этой строке. Указатель const char преобразуется в Unicode с использованием функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
QString &QString::operator+=(const QByteArray &ba)
Эта функция перегружает operator+=().
Добавляет массив байтов ba к этой строке. Массив байтов преобразуется в Unicode с использованием функции fromUtf8(). Если в массиве байтов ba содержатся какие-либо нулевые символы ('\0'), они будут включены в преобразование.
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
QString &QString::operator+=(char ch)
Эта функция перегружает operator+=().
Добавляет символ ch к этой строке. Обратите внимание, что символ преобразуется в Unicode с использованием функции fromLatin1(), в отличие от других функций 8-битного преобразования, которые работают с данными UTF-8.
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
bool QString::operator<(QLatin1String other) const
Эта функция перегружает оператор <().
Возвращает true, если эта строка лексически меньше, чем строка-параметр other; в противном случае возвращает false.
bool QString::operator<(const char *other) const
Возвращает true, если эта строка лексически меньше, чем строка other. В противном случае возвращает false.
Эта функция перегружает operator<().
Указатель other const char преобразуется в QString с использованием функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
bool QString::operator<(const QByteArray &other) const
Эта функция перегружает operator<().
Массив байтов other преобразуется в QString с использованием функции fromUtf8(). Если в массиве байтов присутствуют нулевые символы ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
bool QString::operator<=(QLatin1String other) const
Возвращает true, если эта строка лексически меньше или равна строке-параметру other. В противном случае возвращает false.
Эта функция перегружает оператор <=().
bool QString::operator<=(const char *other) const
Эта функция перегружает operator<=().
Указатель other const char преобразуется в QString с использованием функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
bool QString::operator<=(const QByteArray &other) const
Эта функция перегружает operator<=().
Массив байтов other преобразуется в QString с использованием функции fromUtf8(). Если в массиве байтов присутствуют нулевые символы ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
QString &QString::operator=(const QString &other)
Присваивает other этой строке и возвращает ссылку на эту строку.
QString &QString::operator=(QChar ch)
Эта функция перегружает operator=().
Устанавливает строку, содержащую единственный символ ch.
QString &QString::operator=(QLatin1String str)
Эта функция перегружает operator=().
Присваивает строку Latin-1 str этой строке.
QString &QString::operator=(QString &&other)
Перемещает присваивание other этому экземпляру QString.
Эта функция была добавлена в Qt 5.2.
QString &QString::operator=(const char *str)
Эта функция перегружает operator=().
Присваивает str этой строке. Указатель const char преобразуется в Unicode с использованием функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII или QT_RESTRICTED_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
QString &QString::operator=(const QByteArray &ba)
Эта функция перегружает operator=().
Присваивает ba этой строке. Массив байтов преобразуется в Unicode с использованием функции fromUtf8(). Преобразование останавливается на первом встреченном нулевом символе ('\0') или в конце массива байтов ba.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
QString &QString::operator=(char ch)
Эта функция перегружает operator=().
Присваивает символ ch этой строке. Обратите внимание, что символ преобразуется в Unicode с использованием функции fromLatin1(), в отличие от других функций 8-битного преобразования, которые работают с данными UTF-8.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
bool QString::operator==(QLatin1String other) const
Эта функция перегружает оператор ==().
Возвращает true, если эта строка равна other; в противном случае возвращает false.
bool QString::operator==(const char *other) const
Эта функция перегружает operator==().
Указатель other const char преобразуется в QString с использованием функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
bool QString::operator==(const QByteArray &other) const
Эта функция перегружает operator==().
Массив байтов other преобразуется в QString с использованием функции fromUtf8(). Преобразование останавливается на первом встреченном нулевом символе ('\0') или в конце массива байтов.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
Возвращает true, если эта строка лексически равна строке-параметру other. В противном случае возвращает false.
bool QString::operator>(QLatin1String other) const
Эта функция перегружает оператор>().
Возвращает true, если эта строка лексически больше, чем строка-параметр other; в противном случае возвращает false.
bool QString::operator>(const char *other) const
Эта функция перегружает operator>().
Указатель other типа const char преобразуется в QString с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
bool QString::operator>(const QByteArray &other) const
Эта функция перегружает operator>().
Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов содержатся какие-либо нулевые символы ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
bool QString::operator>=(QLatin1String other) const
Возвращает true, если эта строка лексически больше или равна параметру other. В противном случае возвращает false.
Эта функция перегружает оператор>=().
bool QString::operator>=(const char *other) const
Эта функция перегружает operator>=().
Указатель other типа const char преобразуется в QString с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
bool QString::operator>=(const QByteArray &other) const
Эта функция перегружает operator>=().
Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов содержатся какие-либо нулевые символы ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
QCharRef QString::operator[](int position)
Возвращает символ по указанному position в строке как ссылку на изменяемое значение.
Пример:
QString str;
if (str[0] == QChar('?'))
str[0] = QChar('_'); Возвращаемое значение имеет тип QCharRef, вспомогательный класс для QString. Когда вы получаете объект типа QCharRef, вы можете использовать его как если бы это была QChar &. Если вы присваиваете ему значение, присваивание будет применено к символу в QString, из которого вы получили ссылку.
См. также at().
const QChar QString::operator[](int position) const
Эта функция перегружает operator[]().
const QChar QString::operator[](uint position) const
Эквивалентно at(position).
Эта функция перегружает operator[]().
QCharRef QString::operator[](uint position)
Эта функция перегружает operator[]().
Возвращает символ по указанному position в строке как ссылку на изменяемое значение.
Связанные нечлены
bool operator!=(const QString &s1, const QString &s2)
Возвращает true, если строка s1 не равна строке s2; в противном случае возвращает false.
Сравнение основано исключительно на числовых значениях Unicode символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите сортировку строк пользовательского интерфейса с помощью localeAwareCompare().
bool operator!=(const char *s1, const QString &s2)
Возвращает true, если s1 не равно s2; в противном случае возвращает false.
Для s1 != 0, это эквивалентно compare( s1, s2 ) != 0. Обратите внимание, что ни одна строка не равна s1, являющемуся 0.
См. также QString::compare().
const QString operator+(const QString &s1, const QString &s2)
Возвращает строку, являющуюся результатом конкатенации s1 и s2.
const QString operator+(const QString &s1, const char *s2)
Возвращает строку, являющуюся результатом конкатенации s1 и s2 (s2 преобразуется в Unicode с помощью функции QString::fromUtf8() ).
См. также QString::fromUtf8().
const QString operator+(const char *s1, const QString &s2)
Возвращает строку, являющуюся результатом конкатенации s1 и s2 (s1 преобразуется в Unicode с помощью функции QString::fromUtf8() ).
См. также QString::fromUtf8().
const QString operator+(const QString &s, char ch)
Возвращает строку, являющуюся результатом конкатенации строки s и символа ch.
const QString operator+(char ch, const QString &s)
Возвращает строку, являющуюся результатом конкатенации символа ch и строки s.
bool operator<(const char *s1, const QString &s2)
Возвращает true, если s1 лексически меньше s2; в противном случае возвращает false. Для s1 != 0, это эквивалентно compare(s1, s2) < 0.
Сравнение основано исключительно на числовых значениях Unicode символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите сортировку строк пользовательского интерфейса с использованием функции QString::localeAwareCompare().
См. также QString::compare().
QDataStream &operator<<(QDataStream &stream, const QString &string)
Записывает заданную string в указанный stream.
См. также Сериализация типов данных Qt.
bool operator<=(const QString &s1, const QString &s2)
Возвращает true, если строка s1 лексически меньше или равна строке s2; в противном случае возвращает false.
Сравнение основано исключительно на числовых значениях Unicode символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите сортировку строк пользовательского интерфейса с помощью localeAwareCompare().
bool operator<=(const char *s1, const QString &s2)
Возвращает true, если s1 лексически меньше или равно s2; в противном случае возвращает false. Для s1 != 0, это эквивалентно compare(s1, s2) <= 0.
Сравнение основано исключительно на числовых значениях Unicode символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите сортировку строк пользовательского интерфейса с помощью QString::localeAwareCompare().
См. также QString::compare().
bool operator==(const char *s1, const QString &s2)
Эта функция перегружает operator==().
Возвращает true, если s1 равно s2; в противном случае возвращает false. Обратите внимание, что ни одна строка не равна s1, являющемуся 0.
Эквивалентно s1 != 0 && compare(s1, s2) == 0.
См. также QString::compare().
bool operator>(const QString &s1, const QString &s2)
Возвращает true, если строка s1 лексически больше строки s2; в противном случае возвращает false.
Сравнение основано исключительно на числовых значениях Unicode символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите сортировку строк пользовательского интерфейса с помощью localeAwareCompare().
bool operator>(const char *s1, const QString &s2)
Возвращает true, если s1 лексически больше s2; в противном случае возвращает false. Эквивалентно compare(s1, s2) > 0.
Сравнение основано исключительно на числовых значениях Unicode символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите сортировку строк пользовательского интерфейса с помощью функции QString::localeAwareCompare().
См. также QString::compare().
bool operator>=(const QString &s1, const QString &s2)
Возвращает true, если строка s1 лексически больше или равна строке s2; в противном случае возвращает false.
Сравнение основано исключительно на числовых значениях Unicode символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите сортировку строк пользовательского интерфейса с помощью localeAwareCompare().
bool operator>=(const char *s1, const QString &s2)
Возвращает true, если s1 лексически больше или равно s2; в противном случае возвращает false. Для s1 != 0, это эквивалентно compare(s1, s2) >= 0.
Сравнение основано исключительно на числовых значениях Unicode символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите сортировку строк пользовательского интерфейса с помощью функции QString::localeAwareCompare().
QDataStream &operator>>(QDataStream &stream, QString &string)
Читает строку из указанного stream в заданную string.
См. также Сериализация типов данных Qt.
Документация макросов
QStringLiteral(str)
Макрос генерирует данные для QString из str во время компиляции, если компилятор это поддерживает. В этом случае создание QString бесплатно, и сгенерированные данные строки хранятся в read-only сегменте скомпилированного объектного файла.
Для компиляторов, не поддерживающих создание строк во время компиляции, QStringLiteral использует QString::fromUtf8().
Если у вас есть код, похожий на:
if (node.hasAttribute("http-contents-length")) //... Будет создан временный QString, который будет передан в качестве параметра функции hasAttribute. Это может быть довольно дорого, так как это включает выделение памяти и копирование и преобразование данных в внутреннее кодирование QString.
Это можно избежать, сделав так:
if (node.hasAttribute(QStringLiteral("http-contents-length"))) //... Тогда внутренние данные QString будут сгенерированы во время компиляции, и никакое преобразование или выделение не произойдёт во время выполнения.
Использование QStringLiteral вместо двойных кавычек с ascii-литералами может значительно ускорить создание QString из данных, известных во время компиляции.
Если компилятор поддерживает C++11, строка str может фактически содержать данные Unicode.
Примечание: В некоторых случаях QLatin1String может быть эффективнее QStringLiteral: если он передаётся функции, имеющей перегрузку, принимающую QLatin1String напрямую, без преобразования в QString. Например, это случай QString::operator==
if (attribute.name() == QLatin1String("http-contents-length")) //... Примечание: Есть некоторые ограничения при использовании компиляторов MSVC 2010 или 2012. Приведённые примеры кода не компилируются с ними.
- Конкатенированные строковые литералы не могут использоваться с QStringLiteral.
QString s = QStringLiteral("a" "b"); - QStringLiteral не может использоваться для инициализации списков или массивов QString.
QString a[] = { QStringLiteral("a"), QStringLiteral("b") };
QT_NO_CAST_FROM_ASCII
Отключает автоматическое преобразование из 8-битных строк (char *) в QStrings Unicode
См. также 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-битных данных в QStrings Unicode, но разрешает использование конструкторов QChar(char) и QString(const char (&ch)[N], а также оператора присваивания QString::operator=(const char (&ch)[N]), предоставляя большинство преимуществ по безопасности типов QT_NO_CAST_FROM_ASCII, но не требует от пользовательского кода обертывания символов и строковых литералов в QLatin1Char, QLatin1String или подобные.
Использование этого макроса вместе с исходными строками за пределами диапазона 7-битных символов, не являющимися литералами, или литералами с встроенными нулевыми символами, не определено.
См. также QT_NO_CAST_FROM_ASCII и QT_NO_CAST_TO_ASCII.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qstring.html