Spec-Zone.ru › Qt 5.9

Класс 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)
void resize(int size, QChar fillChar)
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 &reg, 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 упрощённаяСтрока() 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)
END_OF_DOCUMENT_MARKER
QString & operator+=(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)
QString & operator=(const Null &)
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;
}

Переменная result — обычная переменная, выделенная в стеке. Когда вызывается return, и поскольку мы возвращаем по значению, вызывается конструктор копирования, и возвращается копия строки. Благодаря неявной совместной работе фактического копирования не происходит.

Различие между нулевой и пустой строкой

По историческим причинам, 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().

Форматы аргументов

В членах-функциях, где можно указать аргумент формат (например, arg(), number()), аргумент формат может быть одним из следующих:

Формат Значение
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.

См. также section().

enum QString::SplitBehavior

Это перечисление определяет, как функция split() должна вести себя по отношению к пустым строкам.

Постоянная Значение Описание
QString::KeepEmptyParts 0 Если поле пустое, сохранить его в результате.
QString::SkipEmptyParts 1 Если поле пустое, не включать его в результат.

См. также split().

typedef QString::const_iterator

Этот typedef предоставляет итератор типа STL для QString.

END_OF_DOCUMENT_MARKER

См. также 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.

См. также begin() и cend().

const_iterator QString::cend() const

Возвращает постоянный итератор в стиле STL, указывающий на воображаемый символ после последнего символа в списке.

Эта функция была введена в Qt 5.0.

См. также cbegin() и end().

void QString::chop(int n)

Удаляет n символов с конца строки.

Если n больше или равно size(), результатом является пустая строка; если n отрицательно, это эквивалентно передаче нуля.

Пример:

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

Если вы хотите удалить символы с начала строки, используйте remove() вместо этого.

См. также truncate(), resize(), remove() и QStringRef::chop().

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'. Используйте size(), чтобы определить длину массива.

См. также data(), operator[]() и fromRawData().

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, если эта строка содержит вхождение латинской строки 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 в строке.

Функция считает перекрывающиеся совпадения, поэтому в примере ниже четыре экземпляра "ana" или "ama":

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

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

Эта функция перегружает count().

Возвращает количество совпадений регулярного выражения re в строке.

Функция считает перекрывающиеся совпадения, поэтому в примере ниже четыре экземпляра "ana" или "ama":

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. Указатель может быть использован для доступа к символам и их изменения, составляющим строку.

В отличие от constData() и unicode(), возвращаемые данные всегда завершаются нулём '\0'.

Пример:

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

Обратите внимание, что указатель остается действительным только до тех пор, пока строка не изменяется другими способами. Для чтения без изменений constData() быстрее, потому что никогда не вызывает глубокую копию.

См. также constData() и operator[]().

const QChar *QString::data() const

Это перегруженная функция.

Примечание: Возвращаемая строка может не завершаться символом '\0'. Используйте size(), чтобы определить длину массива.

См. также fromRawData().

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.

Примечание: Эта функция доступна только на OS X и 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, инициализированный строкой Latin-1 str.

Данная функция была добавлена в 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, содержащий копию строки string NSString.

Примечание: эта функция доступна только на OS X и iOS.

Данная функция была добавлена в Qt 5.2.

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

Создаёт QString, который использует первые size символов Юникода в массиве unicode. Данные в unicode не копируются. Вызывающий метод должен гарантировать, что unicode не будет удалён или изменён, пока существует QString (или неизменная копия).

Любые попытки изменить QString или его копии приведут к созданию глубокой копии данных, гарантируя, что исходные данные не изменятся.

Вот пример использования QRegularExpression с данными в памяти без необходимости копирования данных в QString:

QRegularExpression pattern("\u00A4");
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(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.

Функция проверяет наличие Byte Order Mark (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.

Функция проверяет наличие Byte Order Mark (BOM). Если его нет, предполагается порядок байтов хоста.

Данная функция медленнее, чем другие преобразования Юникода. Используйте QString(const QChar *, int) или QString(const QChar *) если возможно.

QString создаёт глубокую копию данных Юникода.

Данная функция была добавлена в Qt 5.3.

END_OF_DOCUMENT_MARKER

См. также 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, если строка читается справа налево.

См. также QStringRef::isRightToLeft().

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 не является нулевым указателем, оно также записывает результаты совпадения в объект 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"

См. также left() и right().

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

Возвращает строку в заданном режиме нормализации Юникода mode, согласно заданной version стандарта Юникод.

[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 преобразуется в Юникод с помощью функции fromUtf8().

Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции приложения. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.

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

Эта функция перегружает prepend().

Добавляет массив байтов ba в начало этой строки. Массив байтов преобразуется в Юникод с помощью функции 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.

См. также insert() и replace().

QString &QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Удаляет все вхождения символа ch в этой строке и возвращает ссылку на эту строку.

Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае поиск выполняется без учета регистра.

Пример:

Это то же самое, что 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 в строке и возвращает ссылку на строку. Например:

См. также indexOf(), lastIndexOf() и replace().

QString &QString::remove(const QRegularExpression &re)

Удаляет все вхождения регулярного выражения re в строке и возвращает ссылку на строку. Например:

Этот метод был добавлен в 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, возвращается пустая строка.

Пример:

Этот метод был добавлен в Qt 4.5.

QString &QString::replace(int position, int n, const QString &after)

Заменяет n символов, начиная с индекса position, строкой after и возвращает ссылку на эту строку.

Примечание: Если указанный индекс position находится внутри строки, но position + n выходит за пределы диапазона строки, то n будет скорректирован, чтобы остановить замену на конце строки.

Пример:

См. также 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 и возвращает ссылку на эту строку.

Примечание: Текст не пересканируется после замены.

Этот метод был добавлен в 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)

Если вы хотите добавить определенное количество одинаковых символов в строку, используйте перегрузку resize(int, QChar).

Если вы хотите расширить строку до определенной ширины и заполнить новые позиции определенным символом, используйте функцию leftJustified():

Если size отрицательно, это эквивалентно нулю.

QString r = "Hello";
r = r.leftJustified(10, ' ');
// r == "Hello     "

См. также truncate() и reserve().

void QString::resize(int size, QChar fillChar)

Это перегруженная функция.

В отличие от resize(int), эта перегрузка инициализирует новые символы значением fillChar:

QString t = "Hello";
r.resize(t.size() + 10, 'X');
// t == "HelloXXXXXXXXXX"

Данная функция была представлена в Qt 5.7.

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 &reg, 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, и возвращает ссылку на строку.

По умолчанию основание равно 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 str = "World";
int n = str.size();         // n == 5
str.data()[0];              // returns 'W'
str.data()[4];              // returns 'd'

См. также 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" ]

Если sep пустая, split() возвращает пустую строку, затем каждый символ строки, затем ещё одну пустую строку:

QString str = "abc";
auto parts = str.split("");
// parts: {"", "a", "b", "c", ""}

Чтобы понять это поведение, вспомните, что пустая строка совпадает везде, поэтому вышеприведённое качественно то же самое, что:

QString str = "/a/b/c/";
auto parts = str.split('/');
// parts: {"", "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, и возвращает список этих строк.

См. QString::split(), чтобы понять, как sep, behavior и cs взаимодействуют, чтобы сформировать результат.

Примечание: Все ссылки действительны, пока эта строка жива. Уничтожение этой строки приведет к тому, что все ссылки станут висячими указателями.

Этот метод был представлен в 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 и отвечает за его освобождение.

Примечание: этот метод доступен только на OS X и 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

Возвращает строку, преобразованную в значение с плавающей запятой.

Если произошла ошибка преобразования, *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 &lt;QtCore&gt;"

Данная функция была добавлена в 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.

Возвращаемый массив байтов не определён, если строка содержит не-Latin1 символы. Эти символы могут быть подавлены или заменены знаком вопроса.

См. также 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 автоматически освобождается.

Примечание: эта функция доступна только на OS X и 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'. Используйте size() для определения длины массива.

См. также setUnicode(), utf16() и fromRawData().

const ushort *QString::utf16() const

Возвращает QString в виде завершённого нулём массива беззнаковых коротких целых чисел. Результат остается действительным до тех пор, пока строка не будет изменена.

Возвращаемая строка находится в порядке байтов хоста.

См. также 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 есть символы NUL ('\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(). Если в массиве байтов есть символы NUL ('\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(). Если в массиве байтов есть символы NUL ('\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(). Преобразование прекращается при первом встреченном символе NUL или конце массива 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(), например.

QString &QString::operator=(const Null &)

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(). Эта функция останавливает преобразование на первом найденном символе NUL или в конце массива байтов.

Вы можете отключить этот оператор, определив 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(). Если в массиве байтов встроены символы NUL ('\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(). Если в массиве байтов встроены символы NUL ('\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.

Сравнение основано исключительно на числовых значениях Юникода символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите возможность сортировки строк пользовательского интерфейса с помощью 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 преобразуется в Юникод с помощью функции QString::fromUtf8()).

См. также QString::fromUtf8().

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

Возвращает строку, являющуюся результатом конкатенации s1 и s2 (s1 преобразуется в Юникод с помощью функции 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.

Сравнение основано исключительно на числовых значениях Юникода символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите возможность сортировки строк пользовательского интерфейса, используя функцию 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.

Сравнение основано исключительно на числовых значениях Юникода символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите возможность сортировки строк пользовательского интерфейса с помощью localeAwareCompare().

bool operator<=(const char *s1, const QString &s2)

Возвращает true, если s1 лексически меньше или равно s2; в противном случае возвращает false. Для s1 != 0, это эквивалентно compare(s1, s2) <= 0.

Сравнение основано исключительно на числовых значениях Юникода символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите возможность сортировки строк пользовательского интерфейса с помощью 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.

Сравнение основано исключительно на числовых значениях Юникода символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите возможность сортировки строк пользовательского интерфейса с помощью localeAwareCompare().

bool operator>(const char *s1, const QString &s2)

Возвращает true, если s1 лексически больше s2; в противном случае возвращает false. Эквивалентно compare(s1, s2) > 0.

Сравнение основано исключительно на числовых значениях Юникода символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите возможность сортировки строк пользовательского интерфейса с помощью функции QString::localeAwareCompare().

См. также QString::compare().

bool operator>=(const QString &s1, const QString &s2)

Возвращает true, если строка s1 лексически больше или равна строке s2; в противном случае возвращает false.

Сравнение основано исключительно на числовых значениях Юникода символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите возможность сортировки строк пользовательского интерфейса с помощью localeAwareCompare().

bool operator>=(const char *s1, const QString &s2)

Возвращает true, если s1 лексически больше или равно s2; в противном случае возвращает false. Для s1 != 0, это эквивалентно compare(s1, s2) >= 0.

Сравнение основано исключительно на числовых значениях Юникода символов и очень быстрое, но не соответствует ожиданиям человека. Рассмотрите возможность сортировки строк пользовательского интерфейса с помощью функции QString::localeAwareCompare().

QDataStream &operator>>(QDataStream &stream, QString &string)

Читает строку из указанного stream в заданную string.

См. также Сериализация типов данных Qt.

Документация макросов

QStringLiteral(str)

Макрос генерирует данные для QString из строкового литерала str во время компиляции. Создание QString из него в этом случае бесплатно, а сгенерированные данные строки хранятся в сегменте только для чтения скомпилированного объектного файла.

Если у вас есть код, который выглядит так:

// hasAttribute takes a QString argument
if (node.hasAttribute("http-contents-length")) //...

то временный QString будет создан для передачи в качестве параметра функции hasAttribute. Это может быть довольно дорого, так как это включает выделение памяти и копирование/преобразование данных во внутреннее кодирование QString.

Эти затраты можно избежать, используя QStringLiteral вместо этого:

if (node.hasAttribute(QStringLiteral(u"http-contents-length"))) //...

В этом случае внутренние данные QString будут сгенерированы во время компиляции; никакого преобразования или выделения не произойдёт во время выполнения.

Использование QStringLiteral вместо обычного строкового литерала C++ может значительно ускорить создание экземпляров QString из данных, известных во время компиляции.

Примечание: QLatin1String может быть еще эффективнее, чем QStringLiteral, когда строка передаётся функции, имеющей перегрузку, принимающую QLatin1String, и эта перегрузка избегает преобразования в QString. Например, QString::operator==() может сравнивать напрямую с QLatin1String:

if (attribute.name() == QLatin1String("http-contents-length")) //...

Примечание: Некоторые компиляторы имеют ошибки при кодировании строк, содержащих символы за пределами набора символов US-ASCII. В таких случаях убедитесь, что вы добавляете префикс u к вашей строке. В противном случае это необязательно.

См. также QByteArrayLiteral.

QT_NO_CAST_FROM_ASCII

Отключает автоматическое преобразование из 8-битных строк (char *) в unicode QStrings

См. также QT_NO_CAST_TO_ASCII, QT_RESTRICTED_CAST_FROM_ASCII и QT_NO_CAST_FROM_BYTEARRAY.

QT_NO_CAST_TO_ASCII

Отключает автоматическое преобразование из QString в 8-битные строки (char *)

См. также QT_NO_CAST_FROM_ASCII, QT_RESTRICTED_CAST_FROM_ASCII и QT_NO_CAST_FROM_BYTEARRAY.

QT_RESTRICTED_CAST_FROM_ASCII

Определение этого макроса отключает большинство автоматических преобразований из исходных литералов и 8-битных данных в unicode QStrings, но разрешает использование конструкторов QChar(char) и QString(const char (&ch)[N], а также оператора присваивания QString::operator=(const char (&ch)[N]), предоставляя большинство преимуществ типобезопасности QT_NO_CAST_FROM_ASCII, но не требует, чтобы код пользователя оборачивал символьные и строковые литералы с QLatin1Char, QLatin1String или аналогичными.

Использование этого макроса вместе с исходными строками за пределами диапазона 7-битных символов, нелитералами или литералами со встроенными символами NUL не определено.

См. также 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/qt-5.9/qstring.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API