Spec-Zone.ru › Qt 5.12

Класс QString

Класс QString предоставляет строку символов Юникода. Подробнее...

Заголовок: #include <QString>
qmake: QT += core
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Примечание: Все функции в этом классе являются перевходящими.

Типы публичного доступа

класс Null
typedef ConstIterator
typedef Iterator
перечисление ФормаНормализации { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC }
перечисление ФлагРаздела { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps }
флаги ФлагиРаздела
перечисление ПоведениеРазбиения { KeepEmptyParts, SkipEmptyParts }
typedef const_iterator
typedef const_pointer
typedef const_reference
typedef const_reverse_iterator
typedef разность_типов
typedef iterator
typedef pointer
typedef reference
typedef reverse_iterator
typedef размер_тип
typedef тип_значения

Публичные функции

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(QStringView a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(QLatin1String a, int fieldWidth = 0, 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
QChar back() const
QCharRef back()
QString::iterator begin()
QString::const_iterator begin() const
int capacity() const
QString::const_iterator cbegin() const
QString::const_iterator cend() const
void chop(int n)
QString chopped(int len) const
void clear()
int compare(const QStringRef &ref, Qt::CaseSensitivity cs = ...) const
int compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int compare(QStringView s, Qt::CaseSensitivity cs = ...) const
END_OF_DOCUMENT_MARKER
int compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QString::const_iterator constBegin() const
const QChar * constData() const
QString::const_iterator constEnd() const
bool contains(const QString &str, Qt::CaseSensitivity cs = ...) const
bool contains(QChar ch, Qt::CaseSensitivity cs = ...) const
bool contains(QLatin1String str, Qt::CaseSensitivity cs = ...) const
bool contains(const QStringRef &str, Qt::CaseSensitivity cs = ...) 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
QString::const_reverse_iterator crbegin() const
QString::const_reverse_iterator crend() const
QChar * data()
const QChar * data() const
QString::iterator end()
QString::const_iterator end() const
bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool endsWith(QStringView str, 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)
QChar front() const
QCharRef front()
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 isLower() const
bool isNull() const
bool isRightToLeft() const
bool isUpper() 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
END_OF_DOCUMENT_MARKER
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(QString::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)
QString::reverse_iterator rbegin()
QString::const_reverse_iterator rbegin() const
QString & remove(int position, int n)
QString & remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString & remove(QLatin1String str, 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)
QString::reverse_iterator rend()
QString::const_reverse_iterator rend() const
QString repeated(int times) const
QString & replace(int position, int n, const QString &after)
QString раздел(const QString &sep, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
QString раздел(const QRegExp &reg, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
QString раздел(const QRegularExpression &re, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
QString & преобразоватьВСтроку(int n, int base = 10)
QString & преобразоватьВСтроку(ushort n, int base = 10)
QString & преобразоватьВСтроку(short n, int base = 10)
QString & преобразоватьВСтроку(uint n, int base = 10)
QString & преобразоватьВСтроку(long n, int base = 10)
QString & преобразоватьВСтроку(ulong n, int base = 10)
QString & преобразоватьВСтроку(qlonglong n, int base = 10)
QString & преобразоватьВСтроку(qulonglong n, int base = 10)
QString & преобразоватьВСтроку(float n, char format = 'g', int precision = 6)
QString & преобразоватьВСтроку(double n, char format = 'g', int precision = 6)
QString & установитьНеобработанныеДанные(const QChar *unicode, int size)
QString & установитьUnicode(const QChar *unicode, int size)
QString & установитьUtf16(const ushort *unicode, int size)
void уменьшитьДоНеобходимого()
QString упрощённыйВид() const
int размер() const
QStringList разделить(const QString &sep, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList разделить(QChar sep, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList разделить(const QRegExp &rx, QString::SplitBehavior behavior = KeepEmptyParts) const
QStringList разделить(const QRegularExpression &re, QString::SplitBehavior behavior = KeepEmptyParts) const
QVector<QStringRef> разделитьСсылкой(const QString &sep, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QVector<QStringRef> разделитьСсылкой(QChar sep, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QVector<QStringRef> разделитьСсылкой(const QRegExp &rx, QString::SplitBehavior behavior = KeepEmptyParts) const
QVector<QStringRef> разделитьСсылкой(const QRegularExpression &re, QString::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 начинаетсяС(QStringView str, 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 вCFString() const
QString вНижнемРегистре() const
double вDouble(bool *ok = nullptr) const
float вFloat(bool *ok = nullptr) const
QString вHtmlEscaped() const
int вInt(bool *ok = nullptr, int base = 10) const
QByteArray вLatin1() const
QByteArray вLocal8Bit() const
long вLong(bool *ok = nullptr, int base = 10) const
qlonglong вLongLong(bool *ok = nullptr, int base = 10) const
QString вНижнийРегистр() const
NSString * вNSString() const
short вShort(bool *ok = nullptr, int base = 10) const
std::string вStdString() const
std::u16string вStdU16String() const
std::u32string вStdU32String() const
std::wstring вStdWString() const
uint вUInt(bool *ok = nullptr, int base = 10) const
ulong вULong(bool *ok = nullptr, int base = 10) const
qulonglong вULongLong(bool *ok = nullptr, int base = 10) const
ushort toUShort(bool *ok = nullptr, int base = 10) const
QVector<uint> toUcs4() const
QString toUpper() const
QByteArray toUtf8() const
int toWCharArray(wchar_t *array) const
QString trimmed() const
void truncate(int position)
const QChar * unicode() const
const ushort * utf16() 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+=(const QStringRef &str)
QString & operator+=(QLatin1String str)
QString & operator+=(const char *str)
QString & operator+=(const QByteArray &ba)
QString & operator+=(char ch)
bool operator<(QLatin1String other) const
bool operator<(const char *other) const
bool operator<(const QByteArray &other) const
bool operator<=(QLatin1String other) const
bool operator<=(const char *other) const
bool operator<=(const QByteArray &other) const
QString & operator=(const QString &other)
QString & operator=(QChar ch)
QString & operator=(QLatin1String str)
QString & operator=(QString &&other)
QString & operator=(const char *str)
QString & operator=(const QByteArray &ba)
QString & operator=(char ch)
bool operator==(QLatin1String other) const
bool operator==(const char *other) const
bool operator==(const QByteArray &other) const
bool operator>(QLatin1String other) const
bool operator>(const char *other) const
bool operator>(const QByteArray &other) const
bool operator>=(QLatin1String other) const
bool operator>=(const char *other) const
bool operator>=(const QByteArray &other) const
QCharRef operator[](int position)
const QChar operator[](int position) const
const QChar operator[](uint position) const
QCharRef operator[](uint position)

Static Public Members

QString asprintf(const char *cformat, ...)
int compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
int compare(const QString &s1, QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
int compare(QLatin1String s1, const QString &s2, Qt::CaseSensitivity cs = ...)
int compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs = ...)
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)
const QString::Null null
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 QString &s1, const QString &s2)
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 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)
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-разрядных QChars, где каждый QChar соответствует одному кодовому элементу UTF-16. (Символы Юникод с кодовыми значениями выше 65535 хранятся с использованием пар суррогатов, то есть двух последовательных QChars.)

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

Вы также можете предоставить данные строки как массив QChars:

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

QString создаёт глубокую копию данных QChar, поэтому вы можете в дальнейшем изменять их без побочных эффектов. (Если по соображениям производительности вы не хотите выполнять глубокую копию данных символов, используйте QString::fromRawData() вместо этого.)

Другой подход заключается в установке размера строки с помощью resize() и инициализации данных символ за символом. QString использует нумерацию с нуля, как и массивы 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") {
    // ...
}

Вы также можете передавать строковые литералы в функции, принимающие QStrings в качестве аргументов, вызывая конструктор 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.

END_OF_DOCUMENT_MARKER

Как упоминалось выше, QString предоставляет множество функций и операторов, которые упрощают взаимодействие с const char * строками. Но эта функциональность — обоюдоострый меч: она делает QString более удобным в использовании, если все строки являются US-ASCII или Latin-1, но всегда существует риск, что неявное преобразование из или в const char * выполняется с использованием неправильного 8-битного кодирования. Чтобы свести эти риски к минимуму, вы можете отключить эти неявные преобразования, определив следующие два препроцессорных символа:

  • QT_NO_CAST_FROM_ASCII отключает автоматические преобразования из строковых литералов C и указателей на Unicode.
  • QT_RESTRICTED_CAST_FROM_ASCII разрешает автоматические преобразования из символов C и массивов символов, но отключает автоматические преобразования из указателей на символы в Unicode.
  • 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().

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

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

Формат Значение
e форматировать как [-]9.9e[+|-]999
E форматировать как [-]9.9E[+|-]999
f форматировать как [-]9.9
g использовать e или f формат, какой из них более лаконичен
G использовать E или f формат, какой из них более лаконичен

Точность также указывается с помощью аргумента format. Для форматов 'e', 'E' и 'f', точность представляет количество цифр после десятичной точки. Для форматов 'g' и 'G' точность представляет максимальное количество значащих цифр (завершающие нули опускаются).

Более эффективный способ построения строк

Многие строки известны во время компиляции. Но тривиальный конструктор QString("Hello") скопирует содержимое строки, обрабатывая содержимое как Latin-1. Чтобы этого избежать, можно использовать макрос QStringLiteral, чтобы напрямую создать необходимые данные во время компиляции. Создание QString из литерала не вызывает накладных расходов во время выполнения.

Несколько менее эффективный способ — использовать QLatin1String. Этот класс оборачивает строковый литерал C, предварительно вычисляет его длину во время компиляции и затем может использоваться для более быстрого сравнения со строками QString и преобразования в QString, чем обычный строковый литерал 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 #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 — это typedef для QFlags<SectionFlag>. Он хранит логическое ИЛИ сочетание значений SectionFlag.

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

enum QString::SplitBehavior

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

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

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

typedef QString::const_iterator

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

См. также QString::iterator.

typedef QString::const_pointer

typedef QString::const_pointer предоставляет указатель в стиле STL на элемент QString (QChar).

typedef QString::const_reference

Этот typedef предоставляет ссылку в стиле STL для элемента QString (QChar).

typedef QString::const_reverse_iterator

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

Этот typedef был введен в Qt 5.6.

См. также QString::reverse_iterator и QString::const_iterator.

typedef QString::difference_type

typedef QString::size_type предоставляет тип в стиле STL для разницы между указателями.

typedef QString::iterator

typedef QString::iterator предоставляет неконстантный итератор в стиле STL для QString.

См. также QString::const_iterator.

typedef QString::pointer

QString::const_pointer typedef предоставляет указатель в стиле STL на элемент QString (QChar).

typedef QString::reference

Этот typedef предоставляет ссылку в стиле STL для элемента QString (QChar).

typedef QString::reverse_iterator

Этот typedef предоставляет обратный неконстантный итератор в стиле STL для QString.

Этот typedef был введен в Qt 5.6.

См. также QString::const_reverse_iterator и QString::iterator.

typedef QString::size_type

typedef QString::size_type предоставляет тип в стиле STL для размеров (int).

typedef QString::value_type

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

Документация по членам-функциям

QString::QString()

Создает строку null. Строки null также пустые.

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

QString::QString(const QChar *unicode, int size = -1)

Создает строку, инициализированную первыми size символами массива QChar unicode.

Если unicode равен 0, создается строка null.

Если size отрицательное, предполагается, что unicode указывает на нуль-терминированный массив, и его длина определяется динамически. Завершающий нулевой символ не считается частью строки.

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

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

QString::QString(QChar ch)

Создает строку размером 1, содержащую символ ch.

QString::QString(int size, QChar ch)

Создает строку заданного размера size, где каждый символ установлен на ch.

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

QString::QString(QLatin1String str)

Создаёт копию латинской строки str.

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

QString::QString(const QString &other)

Создаёт копию other.

Эта операция занимает постоянное время, потому что QString неявно разделяет. Это делает возврат QString из функции очень быстрым. Если изменяется общий экземпляр, он будет скопирован (копирование по записи), и это занимает линейное время.

См. также 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]). Использование нелитерального ввода, ввода с вложенными символами NULL или символов, не относящихся к 7-битному набору, в этом случае не определено.

См. также fromLatin1(), fromLocal8Bit(), fromUtf8(), QT_NO_CAST_FROM_ASCII и QT_RESTRICTED_CAST_FROM_ASCII.

QString::QString(const QByteArray &ba)

Создаёт строку, инициализированную массивом байтов ba. Данный массив байтов преобразуется в Unicode с помощью fromUtf8(). Копирование прекращается при первом встреченном символе 0, в противном случае копируется весь массив байтов.

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

См. также fromLatin1(), fromLocal8Bit(), fromUtf8() и QT_NO_CAST_FROM_ASCII.

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().

Добавляет латинскую строку str в эту строку.

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

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

Добавляет строку str в эту строку. Указатель const char преобразуется в Unicode с помощью функции fromUtf8().

END_OF_DOCUMENT_MARKER

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

См. также QT_NO_CAST_FROM_ASCII.

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

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

Добавляет байтовый массив ba к этой строке. Указанный байтовый массив преобразуется в Unicode с помощью функции fromUtf8().

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

См. также QT_NO_CAST_FROM_ASCII.

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

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

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

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

fieldWidth задаёт минимальное количество символов, до которого дополняется a, заполняя его символом fillChar. Положительное значение приводит к правому выравниванию, отрицательное — к левому.

Аргумент base задаёт основание, используемое при преобразовании целого числа a в строку. Основание должно быть в диапазоне от 2 до 36, где 8 даёт восьмеричное, 10 десятичное и 16 шестнадцатеричное числа.

Если fillChar равно '0', используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может появляться перед знаком минус.

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

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

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

Аргумент base задаёт основание, используемое при преобразовании целого числа a в строку. Основание должно быть в диапазоне от 2 до 36.

Если fillChar равно '0', используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может появляться перед знаком минус.

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

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

fieldWidth задаёт минимальное количество символов, до которого дополняется a, заполняя его символом fillChar. Положительное значение приводит к правому выравниванию, отрицательное — к левому.

Аргумент base задаёт основание, используемое при преобразовании целого числа a в строку. Основание должно быть в диапазоне от 2 до 36, где 8 даёт восьмеричное, 10 десятичное и 16 шестнадцатеричное числа.

Если fillChar равно '0', используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может появляться перед знаком минус.

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

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

fieldWidth задаёт минимальное количество символов, до которого дополняется a, заполняя его символом fillChar. Положительное значение приводит к правому выравниванию, отрицательное — к левому.

Аргумент base задаёт основание, используемое при преобразовании целого числа a в строку. Основание должно быть в диапазоне от 2 до 36, где 8 даёт восьмеричное, 10 десятичное и 16 шестнадцатеричное числа.

Если fillChar равно '0', используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может появляться перед знаком минус.

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(QStringView a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const

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

Возвращает копию этой строки с заменой маркера с наименьшим номером строкой a, т.е., %1, %2, ..., %99.

fieldWidth задаёт минимальное количество места, которое должно занимать a. Если a занимает меньше места, чем fieldWidth, оно дополняется символом fillChar. Положительное значение fieldWidth приводит к правому выравниванию текста. Отрицательное значение — к левому.

Этот пример демонстрирует, как можно создать строку status для отображения прогресса обработки списка файлов:

int i;                // current file's number
int total;            // number of files to process
QStringView fileName; // current file's name

QString status = QString("Processing file %1 of %2: %3")
                .arg(i).arg(total).arg(fileName);

Во-первых, arg(i) заменяет %1. Затем arg(total) заменяет %2. И, наконец, arg(fileName) заменяет %3.

Одно из преимуществ использования arg() по сравнению с asprintf() заключается в том, что порядок маркированных позиций может меняться при переводе строк приложения на другие языки, но каждая функция arg() всё равно заменит маркер с наименьшим номером, независимо от его расположения. Кроме того, если маркер %i встречается в строке более одного раза, arg() заменит все его вхождения.

Если не осталось незаменённых маркеров, выводится сообщение об ошибке, и результат неопределён. Номера маркеров должны быть в диапазоне от 1 до 99.

Функция была добавлена в Qt 5.10.

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

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

Возвращает копию этой строки с заменой маркера с наименьшим номером строкой a, т.е., %1, %2, ..., %99.

fieldWidth задаёт минимальное количество места, которое должно занимать a. Если a занимает меньше места, чем fieldWidth, оно дополняется символом fillChar. Положительное значение fieldWidth приводит к правому выравниванию текста. Отрицательное значение — к левому.

Одно из преимуществ использования arg() по сравнению с asprintf() заключается в том, что порядок маркированных позиций может меняться при переводе строк приложения на другие языки, но каждая функция arg() всё равно заменит маркер с наименьшим номером, независимо от его расположения. Кроме того, если маркер %i встречается в строке более одного раза, arg() заменит все его вхождения.

Если не осталось незаменённых маркеров, выводится сообщение об ошибке, и результат неопределён. Номера маркеров должны быть в диапазоне от 1 до 99.

Функция была добавлена в Qt 5.10.

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%3%2";
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"

Для переводов, особенно если строки содержат более одной последовательности escape, следует рассмотреть использование функции arg() вместо этого. Это позволяет контролировать порядок замен переводчику.

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

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

const QChar QString::at(int position) const

Возвращает символ по заданному индексу position в строке.

position должен быть допустимым индексом в строке (т.е., 0 <= position < size()).

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

QChar QString::back() const

Возвращает последний символ в строке. То же, что и at(size() - 1).

Эта функция предоставляется для совместимости со STL.

Предупреждение: Вызов этой функции для пустой строки приводит к неопределенному поведению.

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

См. также front(), at() и operator[]().

QCharRef QString::back()

Возвращает ссылку на последний символ в строке. То же, что и operator[](size() - 1).

Эта функция предоставляется для совместимости со STL.

Предупреждение: Вызов этой функции для пустой строки приводит к неопределенному поведению.

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

См. также front(), at() и operator[]().

QString::iterator QString::begin()

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

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

QString::const_iterator QString::begin() const

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

int QString::capacity() const

Возвращает максимальное количество символов, которое может храниться в строке без принудительной перераспределения памяти.

Единственная цель этой функции — предоставить способ тонкой настройки использования памяти QString. Как правило, вам редко нужно будет вызывать эту функцию. Если вы хотите узнать, сколько символов содержится в строке, вызовите size().

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

QString::const_iterator QString::cbegin() const

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

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

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

QString::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().

QString QString::chopped(int len) const

Возвращает подстроку, содержащую size() - len левых символов этой строки.

Примечание: Поведение неопределено, если len отрицательно или больше, чем size().

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

См. также endsWith(), left(), right(), mid(), chop() и truncate().

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, сравнение чувствительно к регистру; в противном случае сравнение нечувствительно к регистру.

Сравнение, чувствительное к регистру, основано исключительно на числовых значениях Юникода символов и очень быстрое, но не соответствует ожиданиям человека. Для сортировки строк, отображаемых пользователю, рассмотрите использование 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(const QStringRef &ref, Qt::CaseSensitivity cs = ...) const

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

Сравнивает строковую ссылку ref со строкой и возвращает целое число меньше, равно или больше нуля, если строка меньше, равна или больше ref.

int QString::compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

То же, что и compare(*this, other, cs).

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

int QString::compare(QStringView s, Qt::CaseSensitivity cs = ...) const

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

Выполняет сравнение этого объекта с s, используя установку чувствительности к регистру cs.

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

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

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

Лексически сравнивает эту строку с строкой 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 = ...)

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

Выполняет сравнение s1 и s2, используя установку чувствительности к регистру cs.

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

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

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

QString::const_iterator QString::constBegin() const

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

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

const QChar *QString::constData() const

Возвращает указатель на данные, хранящиеся в QString. Указатель можно использовать для доступа к символам, составляющим строку.

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

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

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

QString::const_iterator QString::constEnd() const

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

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

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

Возвращает true true, если эта строка содержит вхождение строки str; в противном случае возвращает false 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 = ...) const

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

Возвращает true true, если эта строка содержит вхождение символа ch; в противном случае возвращает false false.

bool QString::contains(QLatin1String str, Qt::CaseSensitivity cs = ...) const

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

Возвращает true true, если эта строка содержит вхождение латинской строки str; в противном случае возвращает false false.

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

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

Возвращает true true, если эта строка содержит вхождение ссылки на строку str; в противном случае возвращает false false.

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

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

См. также indexOf() и count().

bool QString::contains(const QRegExp &rx) const

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

Возвращает true true, если регулярное выражение rx совпадает где-то в этой строке; в противном случае возвращает false false.

bool QString::contains(QRegExp &rx) const

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

Возвращает true true, если регулярное выражение rx совпадает где-то в этой строке; в противном случае возвращает false false.

Если совпадение найдено, регулярное выражение rx будет содержать совпадающие подстроки (см. QRegExp::matchedLength, QRegExp::cap).

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

bool QString::contains(const QRegularExpression &re) const

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

Возвращает true true, если регулярное выражение re совпадает где-то в этой строке; в противном случае возвращает false false.

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

bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *match) const

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

Возвращает true true, если регулярное выражение re совпадает где-то в этой строке; в противном случае возвращает false 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.

QString::const_reverse_iterator QString::crbegin() const

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

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

См. также begin(), rbegin() и rend().

QString::const_reverse_iterator QString::crend() const

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

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

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

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

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

QString::iterator QString::end()

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

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

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

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

Возвращает true если строка заканчивается на строку-просмотр str; в противном случае возвращает false.

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

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

См. также 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, инициализированный строкой латинской-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, содержащий копию NSString string.

Примечание: эта функция доступна только на 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. Указанная строка преобразуется в Unicode с использованием функции 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. Предполагается, что заданная строка закодирована в utf16, если размер wchar_t равен 2 байтам (например, в Windows), и в ucs4, если размер wchar_t равен 4 байтам (большинство систем Unix).

См. также fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4(), fromStdU16String() и fromStdU32String().

[static] QString QString::fromUcs4(const uint *unicode, int size = -1)

Возвращает QString, инициализированную первыми size символами строки Unicode unicode (кодировка ISO-10646-UCS-4).

Если size равно -1 (по умолчанию), unicode должен завершаться нулём.

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

См. также toUcs4(), fromUtf16(), utf16(), setUtf16(), fromWCharArray() и fromStdU32String().

[static] QString QString::fromUcs4(const char32_t *str, int size = -1)

Возвращает QString, инициализированную первыми size символами строки Unicode str (кодировка ISO-10646-UCS-4).

Если size равно -1 (по умолчанию), str должен завершаться нулём.

Эта функция была добавлена в 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 — это кодировка Unicode и может представлять все символы в строке Unicode, как QString. Однако в UTF-8 возможны недопустимые последовательности, и в случае их обнаружения они будут заменены одним или несколькими "символами замены" или подавлены. Это включает не-Unicode последовательности, не-символы, избыточные последовательности или суррогатные код-точки, закодированные в 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 unicode (кодировка ISO-10646-UTF-16).

Если size равно -1 (по умолчанию), unicode должен завершаться нулём.

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

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

QString делает глубокую копию данных Unicode.

См. также utf16(), setUtf16() и fromStdU16String().

[static] QString QString::fromUtf16(const char16_t *str, int size = -1)

Возвращает QString, инициализированную первыми size символами строки Unicode str (кодировка ISO-10646-UTF-16).

Если size равно -1 (по умолчанию), str должен завершаться нулём.

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

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

QString делает глубокую копию данных Unicode.

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

См. также utf16(), setUtf16() и fromStdU16String().

[static] QString QString::fromWCharArray(const wchar_t *string, int size = -1)

Возвращает копию string, где кодировка string зависит от размера wchar. Если wchar равен 4 байтам, string интерпретируется как UCS-4, если wchar равен 2 байтам, то как UTF-16.

Если size равно -1 (по умолчанию), string должен завершаться нулём.

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

См. также fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4() и fromStdWString().

QChar QString::front() const

Возвращает первый символ в строке. То же самое, что и at(0).

Эта функция предоставлена для совместимости со STL.

Предупреждение: вызов этой функции для пустой строки приводит к неопределённому поведению.

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

См. также back(), at() и operator[]().

QCharRef QString::front()

Возвращает ссылку на первый символ в строке. То же самое, что и operator[](0).

Эта функция предоставлена для совместимости со STL.

Предупреждение: вызов этой функции для пустой строки приводит к неопределённому поведению.

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

См. также back(), at() и operator[]().

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, если совпадений нет.

Пример:

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 будет содержать сопоставленные группы (см. 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, если совпадений нет.

Пример:

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, если совпадений нет.

Если совпадение найдено и 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.

См. также QT_NO_CAST_FROM_ASCII.

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

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

Вставляет массив байтов str в заданную позицию position и возвращает ссылку на эту строку.

Если заданная position больше, чем size(), массив сначала расширяется с помощью resize().

Функция недоступна при определении QT_NO_CAST_FROM_ASCII.

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

См. также QT_NO_CAST_FROM_ASCII.

bool QString::isEmpty() const

Возвращает true , если строка не содержит символов; в противном случае возвращает false.

Пример:

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

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

bool QString::isLower() const

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

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

См. также QChar::isLower() и isUpper().

bool QString::isNull() const

Возвращает true , если эта строка пустая; в противном случае возвращает false.

Пример:

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

Qt различает пустые и пустые строки по историческим причинам. Для большинства приложений важно, содержит ли строка данные или нет, и это можно определить с помощью функции isEmpty().

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

bool QString::isRightToLeft() const

Возвращает true , если строка читается справа налево.

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

bool QString::isUpper() const

Возвращает true, если строка содержит только заглавные буквы, в противном случае возвращает false.

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

См. также QChar::isUpper() и isLower().

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(), chopped(), chop() и truncate().

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().

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 превышает длину строки. Если в строке, начиная с заданного position, доступно меньше n символов, или если n равно -1 (по умолчанию), функция возвращает все доступные символы, начиная с указанного position.

Пример:

QString x = "Nine pineapples";
QString y = x.mid(5, 4);            // y == "pine"
QString z = x.mid(5);               // z == "pineapples"

См. также left(), right(), chopped(), chop() и truncate().

QStringRef QString::midRef(int position, int n = -1) const

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

Если position превышает длину строки, возвращается нулевая ссылка.

Если в строке, начиная с заданного position, доступно меньше n символов, или если 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(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const

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

[static] QString QString::number(long n, int base = 10)

Возвращает строковое представление числа n в указанной base.

По умолчанию base равно 10, и должно быть в диапазоне от 2 до 36. Для base отличных от 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().

Добавляет латинскую строку str в начало этой строки.

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

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

Добавляет строку str в начало этой строки. Указатель const char преобразуется в Unicode с помощью функции fromUtf8().

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

См. также QT_NO_CAST_FROM_ASCII.

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

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

Добавляет массив байтов ba в начало этой строки. Массив байтов преобразуется в Unicode с помощью функции fromUtf8().

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

См. также QT_NO_CAST_FROM_ASCII.

void QString::push_back(const QString &other)

Эта функция предоставлена для совместимости со STL, добавляя заданную строку other в конец этой строки. Она эквивалентна append(other).

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

void QString::push_back(QChar ch)

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

Добавляет заданный символ ch в конец этой строки.

void QString::push_front(const QString &other)

Эта функция предоставлена для совместимости со STL, добавляя заданную строку other в начало этой строки. Она эквивалентна prepend(other).

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

void QString::push_front(QChar ch)

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

Добавляет заданный символ ch в начало этой строки.

QString::reverse_iterator QString::rbegin()

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

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

См. также begin(), crbegin() и rend().

QString::const_reverse_iterator QString::rbegin() const

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

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

QString &QString::remove(int position, int n)

Удаляет n символов из строки, начиная с заданного индекса position, и возвращает ссылку на строку.

Если указанный индекс position находится внутри строки, но position + n выходит за пределы строки, строка обрезается до заданного индекса position.

QString s = "Montreal";
s.remove(1, 4);
// s == "Meal"

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

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

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

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

Пример:

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

Это то же самое, что и replace(ch, "", cs).

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

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

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

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

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

Это то же самое, что и replace(str, "", cs).

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

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

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

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

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

Это то же самое, что и replace(str, "", cs).

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

QString &QString::remove(const QRegExp &rx)

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

QString r = "Telephone";
r.remove(QRegExp("[aeiou]."));
// r == "The"

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

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

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

QString r = "Telephone";
r.remove(QRegularExpression("[aeiou]."));
// r == "The"

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

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

QString::reverse_iterator QString::rend()

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

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

См. также end(), crend() и rbegin().

QString::const_reverse_iterator QString::rend() const

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

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

QString QString::repeated(int times) const

Возвращает копию этой строки, повторённой заданное количество times раз.

Если times меньше 1, возвращается пустая строка.

Пример:

QString str("ab");
str.repeated(4);            // returns "abababab"

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

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

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

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

Пример:

QString x = "Say yes!";
QString y = "no";
x.replace(4, 3, y);
// x == "Say no!"

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

QString &QString::replace(int position, int n, const QChar *unicode, int size)

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

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

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

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

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

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

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

Заменяет все вхождения символа before символом after и возвращает ссылку на эту строку.

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

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

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

Заменяет каждое вхождение первых blen символов before первыми alen символами after и возвращает ссылку на эту строку.

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

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

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

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

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

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

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

END_OF_DOCUMENT_MARKER ```

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(), chopped(), chop() и truncate().

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 = ..., QString::SectionFlags flags = SectionDefault) const

Эта функция возвращает часть строки.

Эта строка рассматривается как последовательность полей, разделённых символом sep. Возвращаемая строка состоит из полей с позиции start до позиции end включительно. Если end не указан, включаются все поля с позиции start до конца строки. Поля нумеруются с 0, 1, 2 и т. д., считая слева, и -1, -2 и т. д., считая справа налево.

Аргумент flags может использоваться для влияния на некоторые аспекты поведения функции, например, на чувствительность к регистру, пропуск пустых полей и обработку начальных и конечных разделителей; см. SectionFlags.

QString str;
QString csv = "forename,middlename,surname,phone";
QString path = "/usr/local/bin/myapp"; // First field is empty
QString::SectionFlag flag = QString::SectionSkipEmpty;

str = csv.section(',', 2, 2);   // str == "surname"
str = path.section('/', 3, 4);  // str == "bin/myapp"
str = path.section('/', 3, 3, flag); // str == "myapp"

Если start или end отрицательные, мы считаем поля с правой стороны строки, самое правое поле — -1, следующее с правой стороны — -2 и так далее.

str = csv.section(',', -3, -2);  // str == "middlename,surname"
str = path.section('/', -1); // str == "myapp"

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

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

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

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

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

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

QString QString::section(const QRegExp &reg, int start, int end = -1, QString::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, QString::SectionFlags flags = SectionDefault) const

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

Эта строка рассматривается как последовательность полей, разделённых регулярным выражением re.

QString line = "forename\tmiddlename  surname \t \t phone";
QRegularExpression sep("\\s+");
str = line.section(sep, 2, 2); // str == "surname"
str = line.section(sep, -3, -2); // str == "middlename  surname"

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

Эта функция была добавлена в 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 не копируются. Вызывающая сторона должна гарантировать, что 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().

void QString::shrink_to_fit()

Эта функция предоставлена для совместимости со STL. Она эквивалентна squeeze().

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

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

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, QString::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, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Это перегруженный метод.

QStringList QString::split(const QRegExp &rx, QString::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, QString::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, QString::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, QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Это перегруженный метод.

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

QVector<QStringRef> QString::splitRef(const QRegExp &rx, QString::SplitBehavior behavior = KeepEmptyParts) const

Это перегруженный метод.

Разделяет строку на ссылки на подстроки в местах совпадения с регулярным выражением rx и возвращает список этих строк. Если rx не совпадает нигде в строке, splitRef() возвращает вектор, содержащий только эту ссылку на строку.

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

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

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

QVector<QStringRef> QString::splitRef(const QRegularExpression &re, QString::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(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Это перегруженный метод.

Возвращает true если строка начинается с представления строки str; в противном случае возвращает false.

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

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

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

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

Возвращает бесконечность, если преобразование переполнило, или 0.0, если преобразование завершилось неудачно по другим причинам (например, при потере значимости).

Если ok не nullptr, неудача сообщается путем установки *ok в false, а успех — путем установки *ok в true.

QString str = "1234.56";
double val = str.toDouble();   // val == 1234.56

Предупреждение: Содержимое QString может содержать только допустимые числовые символы, включая знак плюс/минус, символ e, используемый в научной записи, и десятичную точку. Включение единиц или дополнительных символов приводит к ошибке преобразования.

bool ok;
double d;

d = QString( "1234.56e-02" ).toDouble(&ok); // ok == true, d == 12.3456

d = QString( "1234.56e-02 Volt" ).toDouble(&ok); // ok == false, d == 0

Преобразование строки всегда происходит в локали 'C'. Для локализованного преобразования используйте QLocale::toDouble()

d = QString( "1234,56" ).toDouble(&ok); // ok == false
d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56

По историческим причинам эта функция не обрабатывает разделители тысяч. Если вам необходимо преобразовывать такие числа, используйте QLocale::toDouble().

d = QString( "1,234,567.89" ).toDouble(&ok); // ok == false
d = QString( "1234567.89" ).toDouble(&ok); // ok == true

Эта функция игнорирует начальные и конечные пробелы.

См. также number(), QLocale::setDefault(), QLocale::toDouble(), и trimmed().

float QString::toFloat(bool *ok = nullptr) const

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

Возвращает бесконечность, если преобразование переполнило, или 0.0, если преобразование завершилось неудачно по другим причинам (например, при потере значимости).

Если ok не nullptr, неудача сообщается путем установки *ok в false, а успех — путем установки *ok в true.

Предупреждение: Содержимое QString может содержать только допустимые числовые символы, включая знак плюс/минус, символ e, используемый в научной записи, и десятичную точку. Включение единиц или дополнительных символов приводит к ошибке преобразования.

Преобразование строки всегда происходит в локали 'C'. Для локализованного преобразования используйте QLocale::toFloat()

По историческим причинам эта функция не обрабатывает разделители тысяч. Если вам необходимо преобразовывать такие числа, используйте QLocale::toFloat().

Пример:

QString str1 = "1234.56";
str1.toFloat();             // returns 1234.56

bool ok;
QString str2 = "R2D2";
str2.toFloat(&ok);          // returns 0.0, sets ok to false

QString str3 = "1234.56 Volt";
str3.toFloat(&ok);          // returns 0.0, sets ok to false

Эта функция игнорирует начальные и конечные пробелы.

См. также number(), toDouble(), toInt(), QLocale::toFloat(), и trimmed().

QString QString::toHtmlEscaped() const

Преобразует строку обычного текста в HTML-строку, заменяя HTML-метасимволы <, >, &, и " на HTML-сущности.

Пример:

QString plain = "#include <QtCore>"
QString html = plain.toHtmlEscaped();
// html == "#include &lt;QtCore&gt;"

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

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

Возвращает строку, преобразованную в int с использованием основания base, по умолчанию 10 и должно быть между 2 и 36, или 0. Возвращает 0, если преобразование завершилось неудачно.

Если ok не nullptr, неудача сообщается путем установки *ok в false, а успех — путем установки *ok в true.

Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.

Преобразование строки всегда происходит в локали 'C'. Для локализованного преобразования используйте QLocale::toInt()

Пример:

QString str = "FF";
bool ok;
int hex = str.toInt(&ok, 16);       // hex == 255, ok == true
int dec = str.toInt(&ok, 10);       // dec == 0, ok == false

Эта функция игнорирует начальные и конечные пробелы.

См. также number(), toUInt(), toDouble(), и QLocale::toInt().

QByteArray QString::toLatin1() const

Возвращает представление строки в кодировке Latin-1 в виде QByteArray.

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

См. также fromLatin1(), toUtf8(), toLocal8Bit(), и QTextCodec.

QByteArray QString::toLocal8Bit() const

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

QTextCodec::codecForLocale() используется для преобразования из Юникода. Если кодировка локали не может быть определена, эта функция выполняет то же, что и toLatin1().

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

См. также fromLocal8Bit(), toLatin1(), toUtf8(), и QTextCodec.

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

Возвращает строку, преобразованную в long с использованием основания base, по умолчанию 10 и должно быть между 2 и 36, или 0. Возвращает 0, если преобразование завершилось неудачно.

Если ok не nullptr, неудача сообщается путем установки *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 = nullptr, int base = 10) const

Возвращает строку, преобразованную в long long с использованием основания base, по умолчанию 10 и должно быть между 2 и 36, или 0. Возвращает 0, если преобразование завершилось неудачно.

Если ok не nullptr, неудача сообщается путем установки *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 = nullptr, int base = 10) const

Возвращает строку, преобразованную в short с использованием основания base, по умолчанию 10 и должно быть между 2 и 36, или 0. Возвращает 0, если преобразование завершилось неудачно.

Если ok не nullptr, неудача сообщается путем установки *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 = nullptr, int base = 10) const

Возвращает строку, преобразованную в unsigned int с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.

Если ok не nullptr, неудача сообщается установкой *ok в false, а успех — в 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 = nullptr, int base = 10) const

Возвращает строку, преобразованную в unsigned long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.

Если ok не nullptr, неудача сообщается установкой *ok в false, а успех — в 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 = nullptr, int base = 10) const

Возвращает строку, преобразованную в unsigned long long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.

Если ok не nullptr, неудача сообщается установкой *ok в false, а успех — в 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 = nullptr, int base = 10) const

Возвращает строку, преобразованную в unsigned short с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не удалось.

Если ok не nullptr, неудача сообщается установкой *ok в false, а успех — в 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 — это кодек Юникода, поэтому он без потерь. Все символы из этой строки будут закодированы в UCS-4. Любая недопустимая последовательность кодовых единиц в этой строке заменяется замещающим символом Юникода (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 — это кодек Юникода и может представлять все символы в строке Юникода, например, 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

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

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

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

const ushort *QString::utf16() const

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

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

См. также setUtf16() и unicode().

END_OF_DOCUMENT_MARKER

[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(), например.

См. также QT_NO_CAST_FROM_ASCII.

bool QString::operator!=(const QByteArray &other) const

Данная функция перегружает operator!=().

Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Любые нулевые символы ('\0') в массиве байтов будут включены в преобразование.

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

См. также QT_NO_CAST_FROM_ASCII.

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+=().

Добавляет латинскую строку str в конец этой строки.

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

Данная функция перегружает operator+=().

Добавляет строку str в конец этой строки. Указатель const char преобразуется в Unicode с помощью функции fromUtf8().

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

См. также QT_NO_CAST_FROM_ASCII.

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

Данная функция перегружает operator+=().

Добавляет массив байтов ba в конец этой строки. Массив байтов преобразуется в Unicode с помощью функции fromUtf8(). Любые нулевые символы ('\0') в массиве байтов ba будут включены в преобразование.

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

См. также QT_NO_CAST_FROM_ASCII.

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

Данная функция перегружает operator+=().

Добавляет символ ch в конец этой строки. Обратите внимание, что символ преобразуется в Unicode с помощью функции fromLatin1(), в отличие от других функций с 8-битными данными, которые работают с данными UTF-8.

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

См. также QT_NO_CAST_FROM_ASCII.

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(), например.

См. также QT_NO_CAST_FROM_ASCII.

bool QString::operator<(const QByteArray &other) const

Данная функция перегружает operator<().

Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Любые нулевые символы ('\0') в массиве байтов будут включены в преобразование.

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

См. также QT_NO_CAST_FROM_ASCII.

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(), например.

См. также QT_NO_CAST_FROM_ASCII.

bool QString::operator<=(const QByteArray &other) const

Данная функция перегружает operator<=().

Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Любые нулевые символы ('\0') в массиве байтов будут включены в преобразование.

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

См. также QT_NO_CAST_FROM_ASCII.

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

Присваивает other этой строке и возвращает ссылку на эту строку.

QString &QString::operator=(QChar ch)

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

Устанавливает строку, содержащую единственный символ ch.

QString &QString::operator=(QLatin1String str)

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

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

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

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

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

Присваивает ba этой строке. Массив байтов преобразуется в Unicode с помощью функции fromUtf8(). Функция останавливает преобразование на первом найденном символе NUL или конце массива байтов ba.

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

См. также QT_NO_CAST_FROM_ASCII.

QString &QString::operator=(char ch)

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

Присваивает символ ch этой строке. Обратите внимание, что символ преобразуется в Unicode с помощью функции fromLatin1(), в отличие от других функций 8-битного доступа, которые работают с данными UTF-8.

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

См. также QT_NO_CAST_FROM_ASCII.

bool QString::operator==(QLatin1String other) const

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

Возвращает true, если эта строка равна other; в противном случае возвращает false.

bool QString::operator==(const char *other) const

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

Указатель other const char преобразуется в QString с помощью функции fromUtf8().

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

См. также QT_NO_CAST_FROM_ASCII.

bool QString::operator==(const QByteArray &other) const

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

Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Функция останавливает преобразование на первом найденном символе NUL или конце массива байтов.

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

Возвращает true если эта строка лексически равна строке-параметру other. В противном случае возвращает false.

См. также QT_NO_CAST_FROM_ASCII.

bool QString::operator>(QLatin1String other) const

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

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

bool QString::operator>(const char *other) const

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

Указатель other const char преобразуется в QString с помощью функции fromUtf8().

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

См. также QT_NO_CAST_FROM_ASCII.

bool QString::operator>(const QByteArray &other) const

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

Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов есть вложенные символы NUL ('\0'), они будут включены в преобразование.

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

См. также QT_NO_CAST_FROM_ASCII.

bool QString::operator>=(QLatin1String other) const

Возвращает true если эта строка лексически больше или равна строке-параметру other. В противном случае возвращает false.

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

bool QString::operator>=(const char *other) const

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

Указатель other const char преобразуется в QString с помощью функции fromUtf8().

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

См. также QT_NO_CAST_FROM_ASCII.

bool QString::operator>=(const QByteArray &other) const

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

Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов есть вложенные символы NUL ('\0'), они будут включены в преобразование.

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

См. также QT_NO_CAST_FROM_ASCII.

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.

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 QString &s1, const QString &s2)

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

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

Записывает заданную строку в указанный поток.

См. также Сериализация типов данных 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().

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

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

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

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

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

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

Эквивалентно s1 != 0 && compare(s1, s2) == 0.

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().

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)

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

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

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

Spec-Zone.ru

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