Home · All Classes · Main Classes · Grouped Classes · Modules · Functions

Описание Класса QString
[модуль QtCore]

Класс QString представляет собой строку символов Unicode. Далее...

#include <QString>

Обратите внимание: Все функции данного класса применяют неявное совместное использование данных.

Открытые Типы

Открытые Функции

Статические Открытые Члены

Связанные Не-Члены


Подробное Описание

Класс QString представляет собой строку символов Unicode.

QString хранит строку 16-битных QChar, где каждый QChar хранит символ Unicode 4.0. Unicode = это международный стандарт, поддерживающий большинство существующих на сегодня письменных систем. Это супернабор из ASCII и Latin-1 (ISO 8859-1), и все символы ASCII/Latin-1 доступны в тех-же самых кодовых позициях.

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

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

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

    QString str = "Hello";

QString конвертирует const char * в Unicode используя fromAscii(). По умолчанию, fromAscii() предпочитает символы с кодом, болшим 128, такие как символы Latin-1, но это можно изменить вызвав QTextCodec::setCodecForCStrings().

Во всех методах QString пришнимающих параметры const char *, const char * как классическая оканчивающаяся на '\0' строка в стиле C. Это позволяет параметрам 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():

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

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

Вы также можете передавать строковые литералы в функции принимающие QString и будет вызываться конструктор QString(const char *). Вы также можете, используя макрос qPrintable() возвращающий переданный QString как const char *, передавать QString в функции принимающие const char *. Это эквивалентно вызову <QString>.toAscii().constData().

QString предоставляет следующие базовые функции для изменения символьной информации: append(), prepend(), insert(), replace() и remove(). Например:

    QString str = "and";
    str.prepend("rock ");           // str == "rock and"
    str.append(" roll");            // str == "rock and roll"
    str.replace(5, 3, "&");         // str == "rock & roll"

В функциях replace() и remove() первые два аргумента - это позиция с которой начинается удаление и количество удаляемых символов.

Часто требуется удалить непечатаемые символы из строки ('\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 с определенной подстроки, используйте startsWith() и endsWith(). Если Вы просто хотите проверить, содержит ли QString определенный символ или подстроку, используйте contains(). Если Вы хотите выяснить сколько раз в строке встречается определенный символ или подстрока, используйте count().

QString предоставляет несколько функций для конвертации чисел в строки и строк в числа. См. функцию arg(), функцию setNum(), статическую функцию number(), а также toInt(), toDouble() и другие подобные функции.

Для получения версии строки приведенной к верхнему или нижнему регистру, используйте toUpper() или toLower().

Если Вы хотите заменить все вхождения определенной подстроки другой подстрокой, используйте одну из двух-параметровых перегруженных replace().

QStrings можно сравнивать с использованием таких перегруженных операторов, как operator<(), operator<=(), operator==(), operator>=() и т.д. Сравнение основывается исключительно на числовых значениях Unicode и работает очень быстро, но не так, как человек может ожидать. QString::localeAwareCompare() - это лучший выбор для сортировки строк пользователького интерфейса.

Список строк может храниться в классе QStringList. Вы можете разбить строку, содержащую разделители, на список строк используя split() и объединить список строк в одну строку с разделителем используя QStringList::join(). Вы можете получить из списка строк список строк содержащих определенную подстроку или специфический QRegExp используя QStringList::find().

Если Вы строите QString постепенно и заранее знаете сколько примерно QString будет содержать символов, то можете вызвать reserve() запрашивая заранее для QString некоторое количество памяти. Вы также можете вызвать capacity() чтобы выястить, сколько памяти фактически занимает QString.

Для получения указателя на фактические символьные данные, вызовите data() или constData(). Эти функции возвращают указатель на начало массива QChar. Гарантируется, что полученный указатель останется в силе, пока к QString не обратится неконстантная функция.

Преобразования между 8-битными строками и строками Unicode

QString предоставляет следующие четыре функции возвращающие const char * версию строки подобной QByteArray: toAscii(), toLatin1(), toUtf8() и toLocal8Bit().

Для преобразования из этих кодировок QString предоставляет fromAscii(), fromLatin1(), fromUtf8() и fromLocal8Bit(). Другие кодировки поддерживаются через QTextCodec.

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

Один из способов установить эти команды препроцессора для всего приложения состоит в том, чтобы включить следующую строку в файл проекта qmake:

    DEFINES += QT_NO_CAST_FROM_ASCII \
               QT_NO_CAST_TO_ASCII

В этом случае Вы должны явно вызывать fromAscii(), fromLatin1(), fromUtf8() или fromLocal8Bit() при создании QString из 8-битной строки, или использовать облегченную версию класса QLatin1String, например:

    QString url = QLatin1String("http://www.unicode.org/");

Точно также Вы должны вызывать toAscii(), toLatin1(), toUtf8() или toLocal8Bit() для конвертации QString в 8-битную строку. (Другие кодировки поддерживаются через QTextCodec.)

Вниманию программистов на C

Из-за системы типов C++ и того факта, что QString применяет неявное совместрое использование данных, QStrings может использоваться подобно int и другим базовым типам. Например:

    QString boolToString(bool b)
    {
        QString result;
        if (b)
            result = "True";
        else
            result = "False";
        return result;
    }

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

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

По историческим причинам QString между нулевой строкой (null) и пустой строкой. Нулевая строка - это строка инициализированная с помощью конструктора QString по умолчанию или с помощью передачи в конструктор (const char *)0. Пустая строка - это любая строка с длиной 0. Нулевая строка всегда пустая, но пустая строка не всегда является пустым указателем:

        QString().isNull();             // возвращает true
        QString().isEmpty();            // возвращает true

        QString("").isNull();           // возвращает false
        QString("").isEmpty();          // возвращает true

        QString("abc").isNull();        // возвращает false
        QString("abc").isEmpty();       // возвращает false

Все функции, за исключением isNull(), обращаются с нулевой строкой точно также, как с пустой. Например, toAscii().constData() возвращаят указатель на символ '\0' для нулевой строки (а не нулевой указатель), а QString() считается равным QString(""). Мы рекомендуем всегда пользоваться isEmpty() и избегать isNull().

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


Описание Типов Членов

enum QString::NormalizationForm

КонстантаЗначениеРасшифровка
QString::NormalizationForm_D0Каноническое Разложение
QString::NormalizationForm_C1Каноническое Разложение сопровождаемое Каноническим Составлением
QString::NormalizationForm_KD2Разложение Совмещенного
QString::NormalizationForm_KC3Разложение Совмещенного Сопровождаемое Каноническим Составлением

См. также normalized() and Unicode Standard Annex #15.

enum QString::SectionFlag
flags QString::SectionFlags

КонстантаЗначениеРасшифровка
QString::SectionDefault0x00Пустые записи учитываются, предваряющий и замыкающий разделители не включаются и поиск разделителя выполняется с учетом регистра.
QString::SectionSkipEmpty0x01Пустые записи не учитываются, т.е. они не рассматриваются как start и end.
QString::SectionIncludeLeadingSep0x02Предваряющий разделитель (если существует) включается в возвращаемую строку.
QString::SectionIncludeTrailingSep0x04Замыкающий разделитель (если существует) включается в возвращаемую строку.
QString::SectionCaseInsensitiveSeps0x08Поиск разделителя выполняется без учета регистра.

Тип SectionFlags - это typedef для QFlags<SectionFlag>. Он хранит комбинацию ИЛИ значений SectionFlag.

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

enum QString::SplitBehavior

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

КонстантаЗначениеРасшифровка
QString::KeepEmptyParts0Если строка пустая, то она войдет в результат.
QString::SkipEmptyParts1Если строка пустая, то она не войдет в результат.

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


Описание Функций-Членов

QString::QString ()

Создает нулевую строку. Нулевая строка всегда пустая.

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

QString::QString ( const QChar * unicode, int size )

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

QString производит глубокое копирование информации строки.

QString::QString ( QChar ch )

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

QString::QString ( int size, QChar ch )

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

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

QString::QString ( const QLatin1String & str )

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

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

QString::QString ( const QString & other )

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

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

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

QString::QString ( const char * str )

Создает строку инициализированную строкой ASCII str. str преобразуется в Unicode с использованием fromAscii().

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

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

QString::QString ( const QByteArray & ba )

Создает строку инициализированную битовым массивом ba. ba конвертируется в Unicode с использованием fromAscii(). Копирование останавливается при достижении первого нулевого символа, если такой символ не встречается, копируются все элементы массива.

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

QString::~QString ()

Разрушает строку.

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

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

Пример:

    QString x = "free";
    QString y = "dom";
    x.append(y);
    // x == "freedom"

Это то-же самое, что и insert(size(), str).

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично вышеприведенной функции.

Добавляет байтовый массив ba к данной строке. ba преобразуется в Unicode с испольлзованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично вышеприведенной функции.

Добавляет строку str к данной строке. str преобразуется Unicode с использованием fromAscii().

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

QString & QString::append ( QChar ch )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично вышеприведенной функции.

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

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

Данная функция возвращает копию данной строки, в которой вхождение %1, %2, ..., %9 с самым низким номером заменено на a.

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

Следующий пример показывает формирование строки 'состояния' в которой показывается процесс обработки списка файлов:

    QString status = QString("Processing file %1 of %2: %3")
                        .arg(i)         // текущий номер файла
                        .arg(total)     // общее количество обрабатываемых файлов
                        .arg(fileName); // имя текущего файла

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

Если строка не содержит нужных маркеров (%1, %2 и т.д.), то результат не определен.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Эта функция работает также, как str.arg(a1).arg(a2), только все делается за один проход. Результат может быть различным только если a1 содержит, например, %1:

    QString str = "%1 %2";
    str.arg("%1f", "Hello");        // возвращает "%1f Hello"
    str.arg("%1f").arg("Hello");    // возвращает "Hellof"

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Эта функция работает также, как str.arg(a1).arg(a2).arg(a3), только все делается за один проход.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Эта функция работает также, как str.arg(a1).arg(a2).arg(a3).arg(a4), только все делается за один проход.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Аргумент a форматируется согласно указанному формату fmt, который по умолчанию равен 'g' и может принимать любое из следующих значений:

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

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

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

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

const QChar QString::at ( int i ) const

Возвращает символ строки стоящий в позиции с номером i.

i должно быть корректным номером позиции (т.е. 0 <= i < size()).

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

int QString::capacity () const

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

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

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

void QString::chop ( int n )

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

Если n больше size(), строка будет пустой.

Пример:

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

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

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

void QString::clear ()

Очищает строку и делает ее пустой.

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

int QString::compare ( const QString & s1, const QString & s2 )   [static]

Лексически сравнивает строки s1 и s2 и возвращает целое число меньшее, равное или большее чем ноль если s1 меньше, равно или больше чем s2.

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

    int x = QString::compare("auto", "auto");   // x == 0
    int y = QString::compare("auto", "car");    // y < 0
    int z = QString::compare("car", "auto");    // z > 0

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

int QString::compare ( const QString & other ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Работает подобно compare(*this, other).

const QChar * QString::constData () const

Возвращает указатель на информацию содержащуюся в QString. Указатель может использоваться для получения доступа к символам, составляющим строку. Для удобства данные завершаются символом '\0'.

Указатель остается корректным пока строка не будет изменена.

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

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

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

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

Пример:

    QString str = "Peter Pan";
    str.contains("peter", Qt::CaseInsensitive);    // возвращает true

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная функция возвращает количество накладывающихся вариантов. Пример ниже содержит четыре вхождения "ana" или "ama":

    QString str = "banana and panama";
    str.contains(QRegExp("a[nm]a"));    // возвращает 4

int QString::count () const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Работает подобно size().

QChar * QString::data ()

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

Указатель остается корректным пока строка не будет изменена.

Пример:

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

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

const QChar * QString::data () const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

bool QString::endsWith ( const QString & s, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

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

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

    QString str = "Bananas";
    str.endsWith("anas");         // возвращает true
    str.endsWith("pple");         // возвращает false

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

bool QString::endsWith ( const QLatin1String & s, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

bool QString::endsWith ( const QChar & c, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

Возвращает QString инициализированную первыми size символами 8-битной строки ASCII str.

Если size равно -1 (по умолчанию), то оно принимается равным qstrlen(str).

Если кодек был установлен с помощью QTextCodec::setCodecForCStrings(), то он будет использован для конвертации str в Unicode; в противном случае данная функция сделает это подобно fromLatin1().

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

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

Возвращает QString инициализированную первыми size символами строки Latin-1 str.

Если size равно -1 (по умолчанию), то оно принимается равным qstrlen(str).

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

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

Возвращает QString инициализированную первыми size символами 8-битной строки str.

Если size равно -1 (по умолчанию), то оно принимается равным qstrlen(str).

Для конвертации строки в Unicode используется QTextCodec::codecForLocale().

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

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

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

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

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

    static const QChar unicode[] = {
        0x005A, 0x007F, 0x00A4, 0x0060, 0x1009, 0x0020,
        ...
        0x0020
    };
    int size = sizeof(unicode) / sizeof(QChar);

    QString str = QString::fromRawData(unicode, size);
    if (str.contains(QRegExp(pattern)))
    ...

Предупреждение: Строка созданная с помощью fromRawData() не оканчивается на '\0' если данные не содержат символ '\0' в позиции size. Это означает, что unicode() возвратит строку не оканчивается на '\0' (хотя utf16() делает копирование значений сырых данных).

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

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

Возвращает копию str. str конвертируется в Unicode с использованием fromAscii().

Данный конструктор доступен только если Qt сконфигурирован для возможности использования STL.

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

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

Возвращает str. str конвертируется из utf16 если размер wchar_t равен двум байтам (онапример в Windows) и из ucs4 если размер wchar_t равен четырем байтам (большинство Unix-систем).

Данный конструктор доступен только если Qt сконфигурирован для возможности использования STL.

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

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

Возвращает QString инициализированную первыми size байтами строки UTF-8 str.

Если size равно -1 (по умолчанию), то оно принимается равным qstrlen(str).

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

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

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

Если size равно -1 (по умолчанию), то оно принимается равным qstrlen(str).

QString makes a deep copy of the Unicode data.

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

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);               // возвращает 0
    x.indexOf(y, 1);            // возвращает 10
    x.indexOf(y, 10);           // возвращает 10
    x.indexOf(y, 11);           // возвращает -1

Если from равно -1, то поиск начинается с последнего символа (в нем-же и заканчивается); если равно -2, то поиск начиначется с предпоследнего символа и т.д.

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

int QString::indexOf ( QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Пример:

    QString str = "the minimum";
    str.indexOf(QRegExp("m[aeiou]"), 0);       // возвращает 4

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

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

Пример:

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

Если i больше size(), то строка сперва растягивается с использованием resize().

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

QString & QString::insert ( int i, const QLatin1String & str )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

bool QString::isEmpty () const

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

Пример:

    QString().isEmpty();            // возвращает true
    QString("").isEmpty();          // возвращает true
    QString("x").isEmpty();         // возвращает false
    QString("abc").isEmpty();       // возвращает false

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

bool QString::isNull () const

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

Пример:

    QString().isNull();             // возвращает true
    QString("").isNull();           // возвращает false
    QString("abc").isNull();        // возвращает false

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

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

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);           // возвращает 6
    x.lastIndexOf(y, 6);        // возвращает 6
    x.lastIndexOf(y, 5);        // возвращает 2
    x.lastIndexOf(y, 1);        // возвращает -1

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

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

Данная перегруженная функция предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Пример:

    QString str = "the minimum";
    str.lastIndexOf(QRegExp("m[aeiou]"));      // возвращает 8

QString QString::left ( int len ) const

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

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

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

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

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

Возвращает строку size() которой равно width символов данной строки дополненную символами fill.

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

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

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

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

int QString::length () const

Аналогично size().

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

int QString::localeAwareCompare ( const QString & s1, const QString & s2 )   [static]

Сравнивает s1 с s2 и возвращает целое значение меньшее, равное или большее ноля если s1 меньше, равно или больше s2.

Сравнение выполняется способом зависящим от используемой локализации и платформы. Используйте данную функцию для представлению сортированных списков строк пользователю.

См. также compare() и QTextCodec::locale().

int QString::localeAwareCompare ( const QString & other ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Аналогично localeAwareCompare(*this, other).

QString QString::mid ( int i, int len = -1 ) const

Возвращает строку содержащую len символов данной строки начиная с позиции i.

Если i больше длины строки, то возвращается пустая строка. Если существует меньше, чем len символов доступных в строке после позиции i или если len равно -1 (значение по умолчанию), то функция возвратит все символы данной строки начиная с позиции i.

Пример:

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

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

QString QString::normalized ( NormalizationForm form ) const

Возвращает строку в нормальной форме Unicode form.

QString QString::normalized ( NormalizationForm form, QChar::UnicodeVersion version ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает строку в нормальной форме Unicode form, в соответствии с версией version стандарта Unicode.

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

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

    long a = 63;
    QString str = QString::number(a, 16);             // str == "3f"
    QString str = QString::number(a, 16).upper();     // str == "3F"

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

QString QString::number ( uint 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 f = 'g', int prec = 6 )   [static]

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Аргумент n форматируется в соответствии с форматом f и точностью prec. Формат f может иметь значения 'f', 'F', 'e', 'E', 'g' и 'G'. Для пояснения значений форматов см. arg().

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

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

Вставляет строку str в начало данной строки и возвращает ссылку на данную строку строку.

Пример:

    QString x = "ship";
    QString y = "air";
    x.prepend(y);
    // x == "airship"

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

QString & QString::prepend ( const QLatin1String & str )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Вставляет строку Latin-1 str в начало данной строки.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Вставляет массив байтов ba в начало данной строки. ba конвертируется в Unicode с помощью fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Вставляет строку str в начало данной строки. str конвертируется в Unicode с помощью fromAscii().

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

QString & QString::prepend ( QChar ch )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Вставляет символ ch в начало данной строки.

void QString::push_back ( const QString & other )

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

void QString::push_back ( QChar ch )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Аналогично(ch).

void QString::push_front ( const QString & other )

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

void QString::push_front ( QChar ch )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Аналогично prepend(ch).

QString & QString::remove ( int pos, int len )

Удаляет из строки len символов начиная с позиции с индексом pos и возвращает ссылку на строку.

Если pos в пределах строки, но pos + len вне конца строки, то строка обрезается в позиции pos.

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Аналогично replace(str, "", cs).

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Пример:

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

Аналогично replace(ch, "", cs).

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

QString & QString::replace ( int pos, int len, const QString & after )

Заменяет len символов начиная с позиции pos на строку after и возвращает ссылку на данную строку.

Пример:

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

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

QString & QString::replace ( int pos, int len, const QChar * unicode, int size )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Заменяет len символов начиная с позиции pos первыми size символами QChar массива unicode.

QString & QString::replace ( int pos, int len, QChar after )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Заменяет len символов начиная с позиции pos на символ after.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Заменяет все соответствия строке before строкой after.

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

Пример:

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

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

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

void QString::reserve ( int size )

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

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

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

    QString result;
    int len = 0;
    result.reserve(maxSize);
    while (...) {
        result[len++] = getNextChar(); // заполняет часть занятой памяти
    }
    result.squeeze();

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

void QString::resize ( int size )

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

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

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

Пример:

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

    str.resize(8);
    // str == "Hello???" (где ? стоит на месте неопределенных символов)

Если Вы хотите добавить в конец строки несколько повторяющихся символов, то лучше, чем resize(), использовать operator+=():

    QString str = "Hello";
    str += QString(10, 'X');
    // str == "HelloXXXXXXXXXX"

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

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

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

QString QString::right ( int len ) const

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

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

    QString x = "Pineapple";
    QString y = x.right(5);     // y == "apple"

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

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

Возвращает строку size() которой равен width символов данной строки дополненную символами fill.

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

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

    QString str = "apple";
    str = str.rightJustified(8, '.');
    // str == "...apple"

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

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

Данная функция возвращает раздел строки.

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

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

    QString csv = "forename,middlename,surname,phone";
    QString str = csv.section(',', 2, 2);   // str == "surname"

    QString path = "/usr/local/bin/myapp"; // First field is empty
    QString str = path.section('/', 3, 4);  // str == "bin/myapp"
    QString str = path.section('/', 3, 3, SectionSkipEmpty); // str == "myapp"

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

    QString csv = "forename,middlename,surname,phone";
    QString str = csv.section(',', -3, -2);  // str == "middlename,surname"

    QString path = "/usr/local/bin/myapp"; // First field is empty
    QString str = path.section('/', -1); // str == "myapp"

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Предупреждение: Использование данного варианта перегруженной функции с параметром QRegExp более дорого, чем использование вариантов функции со строковым или символьным параметром.

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

QString & QString::setNum ( int n, int base = 10 )

Присваивает строке символное представление числа n в системе счисления base и возваращает ссылку на строку.

Основание системы счисления по умолчанию равно 10 и должно находиться в интервале от 2 до 36.

    QString str;
    str.setNum(1234);       // str == "1234"

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 ( short n, int base = 10 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

QString & QString::setNum ( ushort n, int base = 10 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

QString & QString::setNum ( double n, char f = 'g', int prec = 6 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Присваивает строке символное представление числа n форматированного в соответствии с форматом f и точностью prec и возвращает ссылку на строку.

Формат f может принимать значение 'f', 'F', 'e', 'E', 'g' или 'G'. Для получения более детальной информации о форматах см. arg().

QString & QString::setNum ( float n, char f = 'g', int prec = 6 )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Присваивает строке символное представление числа n форматированного в соответствии с форматом f и точностью prec и возвращает ссылку на строку.

Формат f может принимать значение 'f', 'F', 'e', 'E', 'g' или 'G'. Для получения более детальной информации о форматах см. arg().

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.

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

QString QString::simplified () const

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

Непечатаемые символы - это множество символов, для которых QChar::isSpace() возвращает true. В это множество входят такие символы ASCII как '\t', '\n', '\v', '\f', '\r' и ' '.

Пример:

    QString str = "  lots\t of\nwhitespace\r\n ";
    str = str.simplified();
    // str == "lots of whitespace";

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

int QString::size () const

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

Последний символ строки имеет позицию с номером size() - 1. Кроме того, QString гарантирует, что символ стоящий в позиции size() всегда равен '\0' для того, чтобы была возможность использовать значения, возвращаемые функциями data() и constData() в качестве аргументов функций ожидающих строку заканчивающуюся символом '\0'.

Пример:

    QString str = "World";
    int n = str.size();         // n == 5
    str.data()[0];              // возвращает 'W'
    str.data()[4];              // возвращает 'd'
    str.data()[5];              // возвращает '\0'

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

QStringList QString::split ( const QString & sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

Разбивает строку на подстроки используя в качестве разделителя sep и возвращает список полученных строк. Если sep не встречается в строке, то split() возвращает список содержащий единственный элемент - эту строку.

Если cs равно true, то при разбиении строки ищется точное соответствие sep. Если cs равно false, то при поиске sep для разбиения строки не учитывается регистр (т.е. "and" соответствует "AND").

Если behavior равно QString::SkipEmptyParts, то пустые записи не будут включены в возвращаемый список. По умолчанию пустые значения включаются в результат.

Пример:

    QString str = "a,,b,c";
    QStringList list1 = str.split(",");
    // list1: [ "a", "", "b", "c" ]

    QStringList list2 = str.split(",", QString::SkipEmptyParts);
    // list2: [ "a", "b", "c" ]

См. также QStringList::join() и section().

QStringList QString::split ( const QChar & sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

QStringList QString::split ( const QRegExp & rx, SplitBehavior behavior = KeepEmptyParts ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

В следующем примере мы разбиваем предложения на слова используя один или несколько символов пробела в качестве разделителя:

    QString str = "Some  text\n\twith  strange whitespace.";
    QStringList list = str.split(QRegExp("\\s+"));
    // list: [ "Some", "text", "with", "strange", "whitespace." ]

Вот подобный пример, но на этот раз мы используем любые не-буквенные символы в качестве разделителя:

    QString str = "This time, a normal English sentence.";
    QStringList list = str.split(QRegExp("\\W+"),
                                 QString::SkipEmptyParts);
    // list: [ "This", "time", "a", "normal", "English", "sentence" ]

В третьем примере, используя разделитель нулевой длины \b (окончание слова), мы разделяем предложение на последовательность слов и не-слов:

    QString str = "Now: this sentence fragment.";
    QStringList list = str.split(QRegExp("\\b"));
    // list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ]

См. также QStringList::join() и section().

QString & QString::sprintf ( const char * cformat, ... )

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

Escape-последовательность %lc обозначает один символ unicode типа ushort (как он возвращается QChar::unicode()). Escape-последовательность %ls обозначает указатель на строку символов unicode типа ushort завершающуюся нулем (как он возвращается QString::utf16()).

Строка формата поддерживает польшинство преобразований предоставляемых функцией printf() стандартной библиотекой C++. Строка форматирования не поддерживает модификаторы длины (например, h для short, ll для long long). Если модификаторы длины Вам нужны, используйте стандартнулю функцию sprintf():

    char buf[BufSize];
    ::sprintf(buf, "%lld", 123456789LL);
    QString str = QString::fromAscii(buf);

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

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

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

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

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");     // возвращает true
    str.startsWith("Car");     // возвращает false

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

bool QString::startsWith ( const QLatin1String & s, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

bool QString::startsWith ( const QChar & c, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

QByteArray QString::toAscii () const

Возвращает 8-битное ASCII представление строки в качестве QByteArray.

Если кодировка была установлена с помощью QTextCodec::setCodecForCStrings(), то она используется для перевода Unicode в 8-битные символы; в противном случае это делается с помощью toLatin1().

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

double QString::toDouble ( bool * ok = 0 ) const

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

Если не может конвертировать, то возвращает 0.0.

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

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

Данная функция пытается интерпретировать строку в соответствии с текущей локализацией. Текущая локализация принимается от системы при запуске приложения и может быть изменена с помощью вызова QLocale::setDefault(). Если строку не удается интерпретировать в соответствии с текущей локализацией, то функция обращается к локализации "C".

    bool ok;
    double d;

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

    QLocale::setDefault(QLocale::German);
    d = QString( "1234,56" ).toDouble(&ok); // ok == true, d == 1234.56
    d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56

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

    bool ok;
    QLocale::setDefault(QLocale::C);
    double d = QString( "1,234,567.89" ).toDouble(&ok); // ok == false

Предупреждение: Если строка начинается с пробела, то функция не сможет нормально конвертировать строку и установит *ok в false (если ok не равно 0). Завершающие пробелы игнорируются.

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

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

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

Если не может конвертировать, то возвращает 0.0.

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

Пример:

    QString str1 = "1234.56";
    str1.toFloat();             // возвращает 1234.56

    bool ok;
    QString str2 = "R2D2";
    str2.toFloat(&ok);          // возвращает 0.0, устанавливает ok в false

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

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

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

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

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

Пример:

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

QByteArray QString::toLatin1 () const

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

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

QByteArray QString::toLocal8Bit () const

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

Для выполнения конвертирования из Unicode используется QTextCodec::codecForLocale().

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

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

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

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

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

Пример:

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

qlonglong QString::toLongLong ( bool * ok = 0, int base = 10 ) const

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

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

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

Пример:

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

QString QString::toLower () const

RВозвращает копию строки приведенную к нижнему регистру.

    QString str = "TROlltECH";
    str = str.toLower();        // str == "trolltech"

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

short QString::toShort ( bool * ok = 0, int base = 10 ) const

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

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

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

Пример:

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

std::string QString::toStdString () const

Возвращает объект std::string заполненный информацией содержащейся в данной QString. Символы Unicode конвертируются в 8-битные символы с использованием toAscii().

Данный оператор очень удобен при передаче QString в функции принимающие объект std::string.

Если QString содержит не-ASCII символы Unicode, использование данной функции может привести к потере информации. Вы можете запретить использование данного оператора определив QT_NO_CAST_TO_ASCII перед компиляцией приложения. Тогда для конвертиции строки в const char * Вы должны будете использовать toAscii() (или toLatin1(), toUtf8(), toLocal8Bit()) и передать возвращенное значение в конструктор std::string.

Данный оператор доступен только если Qt сконфигурирована с учетом совместимости с STL.

См. также toAscii(), toLatin1(), toUtf8() и toLocal8Bit().

std::wstring QString::toStdWString () const

Возвращает объект std::wstring заполненный информацией содержащейся в данной QString. std::wstring кодируется в utf16 на платформах, где wchar_t занимает 2 байта (например, Windows), и в ucs4 на платоформах, где wchar_t занимает 4 байта (большинство Unix-систем).

Данный оператор очень удобен при передаче QString в функции принимающие объект std::wstring.

Данный оператор доступен только если Qt сконфигурирована с учетом совместимости с STL.

См. также utf16(), toAscii(), toLatin1(), toUtf8() и toLocal8Bit().

uint QString::toUInt ( bool * ok = 0, int base = 10 ) const

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

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

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

Пример:

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

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

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

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

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

Пример:

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

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

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

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

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

Пример:

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

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

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

Если ok не равно 0: если нормально конвертировать не удалось, то*ok устанавливается в false; в противном случае *ok устанавливается в true.

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

Пример:

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

QString QString::toUpper () const

Возвращает копию данной строки приведенную к верхнему регистру.

    QString str = "TeXt";
    str = str.toUpper();        // str == "TEXT"

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

QByteArray QString::toUtf8 () const

Возвращает UTF-8 представление данной строки как QByteArray.

См. также fromUtf8(), toAscii(), toLatin1(), toLocal8Bit() и QTextCodec.

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 pos )

Усекает строку в позиции pos.

Если pos больше длины строки, то ничего не происходит.

Пример:

    QString str = "Vladivostok";
    str.truncate(4);
    // str == "Vlad"

См. также chop(), resize() и left().

const QChar * QString::unicode () const

Возвращает заканчивающееся символовм '\0' Unicode представление строки. Результат остается действительным пока строка не будет изменена.

См. также setUnicode() and utf16().

const ushort * QString::utf16 () const

Возвращает QString как оканчивающийся символом '\0' массив unsigned shorts. Результат остается действительным пока строка не будет изменена.

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

QString & QString::vsprintf ( const char * cformat, va_list ap )

Метод эквивалентен sprintf() за исключением того, что принимает va_list ap вместо списка переменных-аргументов. Для получения информации о cformat см. описание sprintf().

Данный метод не вызывает макрос va_end macro, так что вызов макроса va_end для ap - это забота вызывающего.

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

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

Вы можете запретить использование данного оператора определив 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+= ( const QLatin1String & str )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Добавляет массив байтов ba к данной строке. ba конвертируется в Unicode с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Добавляет строку str к данной строке. str конвертируется в Unicode с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Добавляет символ ch к данной строке. Символ конвертируется в Unicode с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Присваивает значение строки Latin-1 str данной строке.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Присваивает значение ba данной строке. ba конвертируется в Unicode с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Присваивает значение str данной строке. str конвертируется в Unicode с использованием fromAscii().

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

QString & QString::operator= ( char ch )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Присваивает данной строке значение символа ch. Конвертация символа в Unicode выполняется с использованием fromAscii().

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

QString & QString::operator= ( QChar ch )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Устанавливает строку в качестве контейнера для единичного символа ch.

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

other конвертируется в QString с использованием fromAscii().

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

QCharRef QString::operator[] ( int i )

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

Пример:

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

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

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

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Функция аналогична at(i).

QCharRef QString::operator[] ( uint i )

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

Данная перегруженная функция-член предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.


Связанные Не-Члены

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

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

Для s1 != 0, данная функция аналогична compare(s1, s2) != 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 с использованием fromAscii().

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

Данная перегруженная функция предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

Возвращает строку являющуюся результатом конкатенации строки s1 и строки s2. s1 конвертируется в Unicode с использованием fromAscii().

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

Данная перегруженная функция предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

Данная перегруженная функция предоставлена для удобства. Ее поведение аналогично поведению вышеприведенной функции.

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

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

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

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

Для s1 != 0, данная функция аналогична compare(s1, s2) < 0.

QDataStream & operator<< ( QDataStream & out, const QString & str )

Записывает строку str в поток out.

См. также Формат операторов QDataStream.

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

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

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

Для s1 != 0, данная функция аналогична compare(s1, s2) <= 0.

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

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

Для s1 != 0, данная функция аналогична && compare(s1, s2) == 0.

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

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

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

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

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

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

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

Для s1 != 0, данная функция аналогична compare(s1, s2) >= 0.

QDataStream & operator>> ( QDataStream & in, QString & str )

Читает из потока in в строку str.

См. также Формат операторов QDataStream.


Copyright © 2005 Trolltech Trademarks
Qt 4.1.0
Hosted by uCoz