Spec-Zone.ru › Qt 5.11

Класс 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 difference_type
typedef iterator
typedef pointer
typedef reference
typedef reverse_iterator
typedef size_type
typedef value_type

Общедоступные функции

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(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int compare(const QStringRef &ref, Qt::CaseSensitivity cs = ...) 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 isNull() const
bool isRightToLeft() const
int lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int lastIndexOf(const QRegExp &rx, int from = -1) const
END_OF_DOCUMENT_MARKER
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 & replace(int position, int n, const QChar *unicode, int size)
QString & replace(int position, int n, QChar after)
QString & replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString & replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString & replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString & replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString & replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString & replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString & replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString & replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString & replace(const QRegExp &rx, const QString &after)
QString & replace(const QRegularExpression &re, const QString &after)
void reserve(int size)
void resize(int size)
void resize(int size, QChar fillChar)
QString right(int n) const
QString rightJustified(int width, QChar fill = QLatin1Char(' '), bool truncate = false) const
QStringRef rightRef(int n) const
QString section(QChar sep, int start, int end = ..., QString::SectionFlags flags = SectionDefault) const
QString section(const QString &sep, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
QString section(const QRegExp &reg, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
QString section(const QRegularExpression &re, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
QString & setNum(int n, int base = 10)
QString & setNum(ushort n, int base = 10)
QString & setNum(short n, int base = 10)
QString & setNum(uint n, int base = 10)
QString & setNum(long n, int base = 10)
QString & setNum(ulong n, int base = 10)
QString & setNum(qlonglong n, int base = 10)
QString & setNum(qulonglong n, int base = 10)
QString & setNum(float n, char format = 'g', int precision = 6)
QString & setNum(double n, char format = 'g', int precision = 6)
QString & setRawData(const QChar *unicode, int size)
QString & setUnicode(const QChar *unicode, int size)
QString & setUtf16(const ushort *unicode, int size)
void shrink_to_fit()
QString simplified() 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 toCFString() const
QString toCaseFolded() const
double toDouble(bool *ok = nullptr) const
float toFloat(bool *ok = nullptr) const
QString toHtmlEscaped() const
int toInt(bool *ok = nullptr, int base = 10) const
QByteArray toLatin1() const
QByteArray toLocal8Bit() const
long toLong(bool *ok = nullptr, int base = 10) const
qlonglong toLongLong(bool *ok = nullptr, int base = 10) const
QString нижнийРегистр() const
NSString * toNSString() const
short toShort(bool *ok = nullptr, int base = 10) const
std::string toStdString() const
std::u16string toStdU16String() const
std::u32string toStdU32String() const
std::wstring toStdWString() const
uint toUInt(bool *ok = nullptr, int base = 10) const
ulong toULong(bool *ok = nullptr, int base = 10) const
qulonglong toULongLong(bool *ok = nullptr, int base = 10) const
ushort toUShort(bool *ok = nullptr, int base = 10) const
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)
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-битных QChar, где каждый QChar соответствует одному кодовому элементу UTF-16. (Символы Юникод с кодовыми значениями выше 65535 хранятся с использованием пар суррогатов, т.е. двумя последовательными QChar.)

Юникод — это международный стандарт, поддерживающий большинство современных письменных систем. Он является супермножеством US-ASCII (ANSI X3.4-1986) и Latin-1 (ISO 8859-1), и все символы US-ASCII/Latin-1 доступны на тех же позициях кодов.

Внутренне QString использует неявное совместное использование (копирование при записи) для уменьшения использования памяти и предотвращения ненужного копирования данных. Это также помогает уменьшить издержки, связанные с хранением 16-битных символов вместо 8-битных.

Помимо QString, Qt также предоставляет класс QByteArray для хранения сырых байтов и традиционных 8-битных строк, завершённых символом '\0'. В большинстве случаев класс QString — это тот, который следует использовать. Он используется во всей API Qt, а поддержка Юникода гарантирует, что ваши приложения будут легко переводиться, если вы захотите расширить рынок своего приложения в будущем. В двух основных случаях, когда QByteArray является подходящим, это когда вам нужно хранить сырые двоичные данные, и когда экономия памяти имеет решающее значение (например, в встраиваемых системах).

Инициализация строки

Один из способов инициализации QString — просто передать const char * в его конструктор. Например, следующий код создаёт QString размером 5, содержащий данные "Hello":

QString str = "Hello";

QString преобразует const char * данные в Юникод, используя функцию fromUtf8().

Во всех функциях QString, которые принимают const char * параметры, const char * интерпретируется как классическая строка C-стиля, завершённая символом '\0', закодированная в UTF-8. Разрешается, чтобы параметр const char * был равен 0.

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

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

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

Ещё один подход — установить размер строки с помощью resize() и инициализировать данные символ за символом. QString использует индексы, начинающиеся с 0, как и массивы C++. Для доступа к символу в определённой позиции индекса можно использовать operator[](). Для неконстантных строк operator[]() возвращает ссылку на символ, который может быть использован в левой части присваивания. Например:

QString str;
str.resize(4);

str[0] = QChar('U');
str[1] = QChar('n');
str[2] = QChar(0x10e3);
str[3] = QChar(0x03a3);

Для только для чтения доступа альтернативный синтаксис — использовать функцию at():

QString str;

for (int i = 0; i < str.size(); ++i) {
    if (str.at(i) >= QChar('a') && str.at(i) <= QChar('f'))
        qDebug() << "Found character in range [a-f]";
}

Функция at() может быть быстрее, чем operator[](), потому что она никогда не вызывает глубокую копию. В качестве альтернативы используйте функции left(), right() или mid() для извлечения сразу нескольких символов.

QString может содержать символы '\0' (QChar::Null). Функция size() всегда возвращает размер всей строки, включая встроенные символы '\0'.

После вызова функции resize() значения вновь выделенных символов не определены. Для установки всех символов в строке на определённое значение используйте функцию fill().

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

QString str;

if (str == "auto" || str == "extern"
        || str == "static" || str == "register") {
    // ...
}

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

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

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

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

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

Более эффективное создание строк

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

Несколько менее эффективный способ — использование QLatin1String. Этот класс оборачивает строковый литерал C, предварительно вычисляет его длину во время компиляции и затем может использоваться для более быстрого сравнения с QStrings и преобразования в QStrings, чем обычный строковый литерал C.

Используя оператор QString '+', легко создать сложную строку из нескольких подстрок. Вы часто будете писать код такого рода:

    QString foo;
    QString type = "long";

    foo->setText(QLatin1String("vector<") + type + QLatin1String(">::iterator"));

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

В этих конструкциях строк нет ничего плохого, но есть несколько скрытых недостатков производительности. Начиная с Qt 4.6, можно устранить их.

Во-первых, многократное использование оператора '+' обычно означает несколько выделений памяти. При конкатенации n подстрок, где n > 2, может быть до n - 1 вызовов выделения памяти.

В 4.6 был добавлен внутренний шаблонный класс QStringBuilder вместе с несколькими вспомогательными функциями. Этот класс помечен как внутренний и не отображается в документации, поскольку не предназначен для экземпляризации в вашем коде. Его использование будет автоматическим, как описано ниже. Класс находится в src/corelib/tools/qstringbuilder.cpp, если вы хотите его изучить.

QStringBuilder использует шаблоны выражений и переопределяет оператор '%' таким образом, что при использовании '%' для конкатенации строк вместо '+', конкатенация нескольких подстрок откладывается до тех пор, пока окончательный результат не будет назначен QString. В этот момент известно количество памяти, необходимое для окончательного результата. Затем выделение памяти вызывается один раз для получения требуемого пространства, и подстроки копируются в него по одной.

Дополнительная эффективность достигается благодаря инлайнингу и уменьшению подсчёта ссылок (созданный из QStringBuilder QString обычно имеет счётчик ссылок 1, в то время как QString::append() требует дополнительной проверки).

Существует два способа доступа к этому улучшенному методу создания строк. Простой способ — включить QStringBuilder там, где вам нужно его использовать, и использовать оператор '%' вместо '+' при конкатенации строк:

    #include <QStringBuilder>

    QString hello("hello");
    QStringRef el(&hello, 2, 3);
    QLatin1String world("world");
    QString message =  hello % el % world % QChar('!');

Более глобальный подход, который является наиболее удобным, но не полностью совместимым с исходным кодом, заключается в определении в вашем файле .pro:

    DEFINES *= QT_USE_QSTRINGBUILDER

и '+' будет выполняться автоматически как QStringBuilder '%' везде.

См. также fromRawData(), QChar, QLatin1String, QByteArray и QStringRef.

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

typedef QString::ConstIterator

Синоним в стиле Qt для QString::const_iterator.

typedef QString::Iterator

Синоним в стиле Qt для QString::iterator.

enum QString::NormalizationForm

Этот перечисление описывает различные нормализованные формы текста Unicode.

Постоянная Значение Описание
QString::NormalizationForm_D 0 Каноническое разложение
QString::NormalizationForm_C 1 Каноническое разложение, за которым следует каноническое объединение
QString::NormalizationForm_KD 2 Разложение совместимости
QString::NormalizationForm_KC 3 Разложение совместимости, за которым следует каноническое объединение

См. также normalized() и Приложение 15 к стандарту Unicode.

enum QString::SectionFlagflags QString::SectionFlags

Это перечисление задает флаги, которые могут использоваться для влияния на различные аспекты поведения функции section() в отношении разделителей и пустых полей.

Постоянная Значение Описание
QString::SectionDefault 0x00 Пустые поля учитываются, ведущие и хвостовые разделители не включаются, и разделитель сравнивается с учётом регистра.
QString::SectionSkipEmpty 0x01 Обрабатывать пустые поля так, как если бы они не существовали, т. е. они не учитываются при определении start и end.
QString::SectionIncludeLeadingSep 0x02 Включать ведущий разделитель (если есть) в результирующую строку.
QString::SectionIncludeTrailingSep 0x04 Включать хвостовой разделитель (если есть) в результирующую строку.
QString::SectionCaseInsensitiveSeps 0x08 Сравнивать разделитель без учёта регистра.

Тип SectionFlags является псевдонимом для QFlags<SectionFlag>. Он хранит результат побитового ИЛИ SectionFlag значений.

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

enum QString::SplitBehavior

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

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

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

typedef QString::const_iterator

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

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

typedef QString::const_pointer

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

typedef QString::const_reference

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

typedef QString::const_reverse_iterator

Этот typedef предоставляет обратный итератор const в стиле 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 предоставляет итератор non-const в стиле STL для QString.

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

typedef QString::pointer

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

typedef QString::reference

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

typedef QString::reverse_iterator

Этот typedef предоставляет обратный итератор non-const в стиле 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 копируются как есть, и символ Byte Order Mark сохраняется, если он есть.

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

QString::QString(QChar ch)

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

QString::QString(int size, QChar ch)

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

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

QString::QString(QLatin1String str)

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

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

QString::QString(const QString &other)

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

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

См. также operator=().

QString::QString(QString &&other)

Перемещающая конструкция QString, которая делает её указателем на тот же объект, что и other.

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

QString::QString(const char *str)

Конструирует строку, инициализированную 8-битными строкой str. Переданный указатель const char преобразуется в Unicode с использованием функции fromUtf8().

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

Примечание: Определение QT_RESTRICTED_CAST_FROM_ASCII также отключает этот конструктор, но вместо него включается конструктор QString(const char (&ch)[N]). В этом случае использование нелитеральных входных данных, или входных данных с вложенными нулевыми символами, или символов, не являющихся 7-битовыми, не определено.

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

QString::QString(const QByteArray &ba)

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

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

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

QString::~QString()

Уничтожает строку.

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

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

Пример:

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

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

Это то же самое, что использование функции insert():

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

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

См. также operator+=(), prepend(), и insert().

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

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

Добавляет len символов из массива QChar str в эту строку.

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

QString &QString::append(QChar ch)

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

Добавляет символ ch в эту строку.

QString &QString::append(const QStringRef &reference)

Добавляет переданную строку reference в эту строку и возвращает результат.

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

QString &QString::append(QLatin1String str)

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

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

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

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

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

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

END_OF_DOCUMENT_MARKER

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

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

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

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

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

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

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

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

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

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

Сначала arg(i) заменяет %1. Затем arg(total) заменяет %2. Наконец, arg(fileName) заменяет %3.

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

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

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

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

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

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

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

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

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

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

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

Символ '%' может быть после символа 'L', в этом случае последовательность заменяется локализованным представлением a. Преобразование использует текущую локаль. Текущая локаль определяется из настроек локали системы при запуске приложения. Она может быть изменена с помощью QLocale::setDefault(). Флаг 'L' игнорируется, если base не равно 10.

QString str;
str = QString("Decimal 63 is %1 in hexadecimal")
        .arg(63, 0, 16);
// str == "Decimal 63 is 3f in hexadecimal"

QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
str = QString("%1 %L2 %L3")
        .arg(12345)
        .arg(12345)
        .arg(12345, 0, 16);
// str == "12345 12,345 3039"

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

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

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

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

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

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

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

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

Аргумент a представлен в заданной системе счисления base, которая по умолчанию равна 10 и должна быть в диапазоне от 2 до 36. Для систем счисления, отличных от 10, a обрабатывается как беззнаковое целое число.

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

Символ '%' может быть после символа 'L', в этом случае последовательность заменяется локализованным представлением a. Преобразование использует текущую локаль, заданную QLocale::setDefault(). Если текущая локаль не была задана, используется локаль "C". Флаг 'L' игнорируется, если base не равно 10.

QString str;
str = QString("Decimal 63 is %1 in hexadecimal")
        .arg(63, 0, 16);
// str == "Decimal 63 is 3f in hexadecimal"

QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
str = QString("%1 %L2 %L3")
        .arg(12345)
        .arg(12345)
        .arg(12345, 0, 16);
// str == "12345 12,345 3039"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Аргумент a форматируется в соответствии с указанным format и precision. Подробности см. в разделе Форматы аргументов.

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

double d = 12.34;
QString str = QString("delta: %1").arg(d, 0, 'E', 3);
// str == "delta: 1.234E+01"

Символ '%' может быть после символа 'L', в этом случае последовательность заменяется локализованным представлением a. Преобразование использует текущую локаль, заданную QLocale::setDefault(). Если текущая локаль не была задана, используется локаль "C".

Если fillChar равно '0' (число 0, ASCII 48), функция будет использовать нуль из текущей локали для заполнения. Для отрицательных чисел нулевое заполнение, вероятно, будет перед знаком минус.

См. также QLocale::toString().

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

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

Аргумент a интерпретируется как символ Latin-1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сначала arg(i) заменяет %1. Затем arg(total) заменяет %2. Наконец, arg(fileName) заменяет %3.

Одно преимущество использования arg() перед asprintf() заключается в том, что порядок маркированных позиций может измениться при переводе строк приложения на другой язык, но каждая 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. Положительное значение 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%2%3";
str.arg("Hello", QString::number(20), QString::number(50)); // returns "Hello5020"

QString QString::arg(const QString &a1, const QString &a2, const QString &a3) const

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

Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3), за исключением того, что строки a1, a2 и a3 заменяются за один проход.

QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4) const

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

Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4), за исключением того, что строки a1, a2, a3 и a4 заменяются за один проход.

QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5) const

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

Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5), за исключением того, что строки a1, a2, a3, a4 и a5 заменяются за один проход.

QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6) const

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

Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6)), за исключением того, что строки a1, a2, a3, a4, a5 и a6 заменяются за один проход.

QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7) const

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

Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7), за исключением того, что строки a1, a2, a3, a4, a5, a6 и a7 заменяются за один проход.

QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8) const

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

Это то же самое, что и вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8), за исключением того, что строки a1, a2, a3, a4, a5, a6, a7 и a8 заменяются за один проход.

QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8, const QString &a9) const

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

Это то же самое, что и вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8).arg(a9), за исключением того, что строки a1, a2, a3, a4, a5, a6, a7, a8 и a9 заменяются за один проход.

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

Безопасно создаёт форматированную строку из строки формата cformat и произвольного списка аргументов.

Строка формата поддерживает спецификаторы преобразования, модификаторы длины и флаги, предоставляемые функцией printf() в стандартной библиотеке C++. Строка cformat и %s аргументы должны быть закодированы в UTF-8.

Примечание: Последовательность %lc ожидает юникодный символ типа char16_t или ushort (как возвращает QChar::unicode()). Последовательность %ls ожидает указатель на нуль-терминированный массив юникодных символов типа char16_t или ushort (как возвращает QString::utf16()). Это расходится с функцией printf() в стандартной библиотеке C++, которая определяет %lc для печати wchar_t и %ls для печати wchar_t*, а также может генерировать предупреждения компилятора на платформах, где размер wchar_t не равен 16 битам.

Предупреждение: Не рекомендуется использовать QString::asprintf() в новом коде Qt. Вместо этого рассмотрите использование QTextStream или arg(), которые бесшовно поддерживают строки Unicode и являются безопасными с точки зрения типов. Вот пример, использующий QTextStream:

QString result;
QTextStream(&result) << "pi = " << 3.14;
// result == "pi = 3.14"

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

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

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

const QChar QString::at(int position) const

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

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

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

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, сравнение выполняется с учётом регистра; в противном случае сравнение выполняется без учёта регистра.

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

int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive);  // x == 0
int y = QString::compare("auto", "Car", Qt::CaseSensitive);     // y > 0
int z = QString::compare("auto", "Car", Qt::CaseInsensitive);   // z < 0

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

См. также operator==(), operator<() и operator>().

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

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

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

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

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

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

Лексически сравнивает эту строку со строкой other и возвращает целое число меньше, равно или больше нуля, если эта строка меньше, равна или больше другой строки.

То же, что и 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.

int QString::compare(const QStringRef &ref, Qt::CaseSensitivity cs = ...) const

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

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

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

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

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

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

QString::const_iterator QString::constEnd() const

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

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

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

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

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

Пример:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bool QString::contains(QRegExp &rx) const

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

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

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

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

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

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

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

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

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

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

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

Если совпадение успешно и match не равен null, результаты совпадения также записываются в объект QRegularExpressionMatch, на который указывает match.

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

См. также QRegularExpression::match().

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

Возвращает количество (возможно, перекрывающихся) вхождений строки str в этой строке.

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

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

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

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

Возвращает количество вхождений символа ch в строку.

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

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

int QString::count() const

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

То же, что и size().

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

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

Возвращает количество (возможно, перекрывающихся) вхождений строковой ссылки str в этой строке.

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

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

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

int QString::count(const QRegExp &rx) const

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

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

Эта функция считает перекрывающиеся совпадения, поэтому в примере ниже есть четыре случая "ана" или "ама":

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

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

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

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

Эта функция считает перекрывающиеся совпадения, поэтому в примере ниже есть четыре случая "ана" или "ама":

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

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

QString::const_reverse_iterator QString::crbegin() const

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

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

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

QString::const_reverse_iterator QString::crend() const

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

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

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

QChar *QString::data()

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

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

Пример:

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

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

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

const QChar *QString::data() const

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

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

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

QString::iterator QString::end()

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

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

См. также fromUtf16() и setRawData().

[static] QString QString::fromStdString(const std::string &str)

Возвращает копию строки str. Данная строка преобразуется в Юникод с помощью функции fromUtf8().

См. также fromLatin1(), fromLocal8Bit(), fromUtf8(), и QByteArray::fromStdString().

[static] QString QString::fromStdU16String(const std::u16string &str)

Возвращает копию строки str. Предполагается, что заданная строка закодирована в UTF-16.

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

См. также fromUtf16(), fromStdWString(), и fromStdU32String().

[static] QString QString::fromStdU32String(const std::u32string &str)

Возвращает копию строки str. Предполагается, что заданная строка закодирована в UCS-4.

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

См. также fromUcs4(), fromStdWString(), и fromStdU16String().

[static] QString QString::fromStdWString(const std::wstring &str)

Возвращает копию строки str. Предполагается, что заданная строка закодирована в 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 (кодировка 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 символами строки Юникода 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 — это кодек Юникода и может представлять все символы в строке Юникода, такой как QString. Однако, с UTF-8 возможны недопустимые последовательности, и, если такие обнаружатся, они будут заменены одной или несколькими «символами замены» или подавлены. Это включает не-Юникод последовательности, не-символы, избыточные последовательности или суррогатные кодовые точки, закодированные в UTF-8.

Данная функция может использоваться для обработки поступающих данных по частям, при условии, что все символы UTF-8 завершаются в поступающих данных. Любые незавершенные символы в конце строки будут заменены или подавлены. Для выполнения декодирования с состоянием, пожалуйста, используйте QTextDecoder.

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

[static] QString QString::fromUtf8(const QByteArray &str)

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

Возвращает QString, инициализированный строкой UTF-8 str.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает копию string, где кодировка string зависит от размера wchar. Если wchar имеет 4 байта, string интерпретируется как UCS-4, если 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().

END_OF_DOCUMENT_MARKER

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

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

Возвращает индекс первого вхождения строки-ссылки str в этой строке, ища вперед с позиции from. Возвращает -1, если str не найдена.

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

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

int QString::indexOf(const QRegExp &rx, int from = 0) const

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

Возвращает индекс первого совпадения регулярного выражения rx в строке, ища вперед с позиции from. Возвращает -1, если rx не совпало нигде.

Пример:

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

int QString::indexOf(QRegExp &rx, int from = 0) const

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

Возвращает индекс первого совпадения регулярного выражения rx в строке, ища вперед с позиции from. Возвращает -1, если rx не совпало нигде.

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

Пример:

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

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

int QString::indexOf(const QRegularExpression &re, int from = 0) const

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

Возвращает индекс первого совпадения регулярного выражения re в строке, ища вперед с позиции from. Возвращает -1, если re не совпало нигде.

Пример:

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

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

int QString::indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const

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

Возвращает индекс первого совпадения регулярного выражения re в строке, ища вперед с позиции from. Возвращает -1, если re не совпало нигде.

Если совпадение найдено и rmatch не равен нулю, результаты совпадения также записываются в объект QRegularExpressionMatch, на который указывает rmatch.

Пример:

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

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

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

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

Пример:

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

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

См. также append(), prepend(), replace() и remove().

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

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

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

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

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

Вставляет ch в заданную позицию position в строке.

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

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

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

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

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

QString &QString::insert(int position, QLatin1String str)

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

Вставляет латин-1 строку str в заданную позицию position.

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

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

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

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

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

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

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

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

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

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

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

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

bool QString::isEmpty() const

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

Пример:

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

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

bool QString::isNull() const

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

Пример:

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

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

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

bool QString::isRightToLeft() const

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

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

int QString::lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Возвращает индекс последнего вхождения строки str в этой строке, ища назад с позиции from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее. Возвращает -1, если str не найдена.

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

Пример:

QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y);           // returns 6
x.lastIndexOf(y, 6);        // returns 6
x.lastIndexOf(y, 5);        // returns 2
x.lastIndexOf(y, 1);        // returns -1

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

int QString::lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

Возвращает индекс последнего вхождения символа ch, ища назад с позиции from.

int QString::lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

Возвращает индекс последнего вхождения строки str в этой строке, ища назад с позиции from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее. Возвращает -1, если str не найдена.

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

Пример:

QString x = "crazy azimuths";
QString y = "az";
x.lastIndexOf(y);           // returns 6
x.lastIndexOf(y, 6);        // returns 6
x.lastIndexOf(y, 5);        // returns 2
x.lastIndexOf(y, 1);        // returns -1

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

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

int QString::lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

Возвращает индекс последнего вхождения строковой ссылки str в этой строке, выполняя поиск назад с индекса from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, то с предпоследнего символа и так далее. Возвращает -1, если str не найдена.

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

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

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

int QString::lastIndexOf(const QRegExp &rx, int from = -1) const

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

Возвращает индекс последнего совпадения регулярного выражения rx в строке, выполняя поиск назад с индекса from. Возвращает -1, если rx не найдено.

Пример:

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

int QString::lastIndexOf(QRegExp &rx, int from = -1) const

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

Возвращает индекс последнего совпадения регулярного выражения rx в строке, выполняя поиск назад с индекса from. Возвращает -1, если rx не найдено.

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

Пример:

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

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

int QString::lastIndexOf(const QRegularExpression &re, int from = -1) const

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

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

Пример:

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

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

int QString::lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const

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

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

Если совпадение найдено и rmatch не является нулевым указателем, он также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.

Пример:

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

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

QString QString::left(int n) const

Возвращает подстроку, содержащую n левых символов строки.

Возвращается вся строка, если n больше или равно size() или меньше нуля.

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

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

QString QString::leftJustified(int width, QChar fill = QLatin1Char(' '), bool truncate = false) const

Возвращает строку размером width, содержащую эту строку, дополненную символом fill.

Если truncate равно false и размер строки больше width, возвращается копия строки.

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

Если truncate равно true и размер строки больше width, любые символы в копии строки после позиции width удаляются, и возвращается копия.

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

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

QStringRef QString::leftRef(int n) const

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

Если n больше или равно размеру или меньше нуля, возвращается ссылка на всю строку.

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.

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.

По умолчанию основание равно 10 и должно быть в диапазоне от 2 до 36. Для оснований, отличных от 10, n обрабатывается как целое беззнаковое число.

Форматирование всегда использует QLocale::C, то есть английский/США. Чтобы получить локальное строковое представление числа, используйте QLocale::toString() с соответствующей локалью.

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

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

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

Этот метод перегружает prepend().

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

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

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

Этот метод перегружает prepend().

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

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

void QString::push_back(const QString &other)

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

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

void QString::push_back(QChar ch)

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

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

void QString::push_front(const QString &other)

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

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

void QString::push_front(QChar ch)

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример:

QString str = "colour behaviour flavour neighbour";
str.replace(QString("ou"), QString("o"));
// str == "color behavior flavor neighbor"

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

Пример:

QString equis = "xxxxxx";
equis.replace("xx", "x");
// equis == "xxx"

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

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

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

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

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

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

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

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

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

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

QString &QString::replace(const QRegExp &rx, const QString &after)

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

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

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

Для регулярных выражений, содержащих группы захвата, вхождения \1, \2, ..., в after заменяются на rx.cap(1), cap(2), ...

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

См. также indexOf(), lastIndexOf(), remove() и QRegExp::cap().

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

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

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

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

Для регулярных выражений, содержащих группы захвата, вхождения \1, \2, ..., в after заменяются на соответствующую подстроку, захваченную группой захвата.

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

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

См. также indexOf(), lastIndexOf(), remove(), QRegularExpression и QRegularExpressionMatch.

void QString::reserve(int size)

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

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

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

QString result;
int maxSize;
bool condition;
QChar nextChar;

result.reserve(maxSize);

while (condition)
    result.append(nextChar);

result.squeeze();

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

void QString::resize(int size)

Устанавливает размер строки в size символов.

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

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

Пример:

QString s = "Hello world";
s.resize(5);
// s == "Hello"

s.resize(8);
// s == "Hello???" (where ? stands for any character)

Если вы хотите добавить определенное количество одинаковых символов в конец строки, используйте перегрузку 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 не будет удалён или изменён до тех пор, пока 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

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

Возвращает 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

Преобразование строки всегда происходит в локали '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

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

Возвращает 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

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

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

Возвращает строку, преобразованную в целое число с основанием 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

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

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

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

QByteArray QString::toLocal8Bit() const

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

QTextCodec::codecForLocale() используется для преобразования из Unicode. Если кодировка локали не может быть определена, эта функция делает то же самое, что и 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. Данные Unicode преобразуются в 8-битные символы с помощью функции toUtf8().

Этот метод в основном полезен для передачи QString функции, которая принимает объект std::string.

См. также toLatin1(), toUtf8(), toLocal8Bit(), и QByteArray::toStdString().

std::u16string QString::toStdU16String() const

Возвращает объект std::u16string с данными, содержащимися в этом QString. Данные Unicode такие же, как возвращаются методом utf16().

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

См. также utf16(), toStdWString(), и toStdU32String().

std::u32string QString::toStdU32String() const

Возвращает объект std::u32string с данными, содержащимися в этом QString. Данные Unicode такие же, как возвращаются методом 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, а успех — в установив *ok в true.

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

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

Пример:

QString str = "FF";
bool ok;

uint hex = str.toUInt(&ok, 16);     // hex == 255, ok == true
uint dec = str.toUInt(&ok, 10);     // dec == 0, ok == false

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

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

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

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

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

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

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

Пример:

QString str = "FF";
bool ok;

ulong hex = str.toULong(&ok, 16);   // hex == 255, ok == true
ulong dec = str.toULong(&ok, 10);   // dec == 0, ok == false

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

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

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

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

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

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

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

Пример:

QString str = "FF";
bool ok;

quint64 hex = str.toULongLong(&ok, 16);    // hex == 255, ok == true
quint64 dec = str.toULongLong(&ok, 10);    // dec == 0, ok == false

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

См. также number(), toLongLong() и QLocale::toULongLong().

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

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

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

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

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

Пример:

QString str = "FF";
bool ok;

ushort hex = str.toUShort(&ok, 16);     // hex == 255, ok == true
ushort dec = str.toUShort(&ok, 10);     // dec == 0, ok == false

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

См. также number(), toShort() и QLocale::toUShort().

QVector<uint> QString::toUcs4() const

Возвращает представление строки в формате UCS-4/UTF-32 как QVector<uint>.

UCS-4 — это кодировка Юникода, поэтому она без потерь. Все символы из этой строки будут закодированы в 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

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

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

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

const ushort *QString::utf16() const

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

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

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

[static] QString QString::vasprintf(const char *cformat, va_list ap)

Эквивалентный метод asprintf(), но принимает va_list ap вместо списка аргументов. См. документацию asprintf() для объяснения cformat.

Этот метод не вызывает макрос va_end, вызывающая сторона отвечает за вызов va_end для ap.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавляет строку other в конец этой строки и возвращает ссылку на эту строку.

Пример:

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

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

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

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

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

Добавляет символ ch в строку.

QString &QString::operator+=(const QStringRef &str)

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

Добавляет фрагмент строки, на который ссылается str, к этой строке.

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

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

Добавляет строку Latin-1 str к этой строке.

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

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

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

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

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

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

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

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

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

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

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

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

bool QString::operator<(QLatin1String other) const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QString &QString::operator=(QChar ch)

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

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

QString &QString::operator=(QLatin1String str)

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

Присваивает строку Latin-1 str этой строке.

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

Перемещающее присваивание other этому экземпляру QString.

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

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

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

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

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

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

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

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

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

QString &QString::operator=(char ch)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bool QString::operator>(QLatin1String other) const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QCharRef QString::operator[](int position)

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

Пример:

QString str;

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

Возвращаемое значение имеет тип QCharRef, вспомогательный класс для QString. Когда вы получаете объект типа QCharRef, вы можете использовать его как QChar &. Если вы присваиваете ему значение, присвоение будет применено к символу в QString, из которого вы получили ссылку.

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

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

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

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

Эквивалентно at(position).

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

QCharRef QString::operator[](uint position)

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

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

Связанные нечлены

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

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

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

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

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

Возвращает строку, являющуюся результатом конкатенации s1 и s2 (s1 преобразуется в Unicode с помощью функции QString::fromUtf8()).

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

const QString operator+(const QString &s, char ch)

Возвращает строку, являющуюся результатом конкатенации строки s и символа ch.

const QString operator+(char ch, const QString &s)

Возвращает строку, являющуюся результатом конкатенации символа ch и строки s.

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

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

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

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

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

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

QDataStream &operator<<(QDataStream &stream, const QString &string)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также Сериализация типов данных 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/archives/qt-5.11/qstring.html

Spec-Zone.ru

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