QString是Unicode字符的集合,它是Qt API中使用的字符串类。
QString的成员是QChar,QChar是一个16位Unicode字符类。大多数编译器把它看作是一个unsigned short。
QString和C标准中的字符串不同,它不以'\0'结尾,相反,QString可以嵌入'\0'/字符。
(1)QString初始化。
QString str("Hello"); QString str = "Hello"; static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 }; QString str(data, 4); QString str; str.resize(4); str[0] = QChar('U'); str[1] = QChar('n'); str[2] = QChar(0x10e3); str[3] = QChar(0x03a3); QString str; str.sprintf("%s %.3f", "float", 3.1415926); //str结果是"float 3.14" QString str; str.setNum(10); //str = "10" str.setNum(10, 16); //str = "a" str.setNum(10.12345); //str = "10.12345" QString i; // current file's number QString total; // number of files to process QString fileName; // current file's name QString status = QString("Processing file %1 of %2: %3") .arg(i).arg(total).arg(fileName);
(2)字符串转换
long toLong ( bool * ok = 0, int base = 10 ) const qlonglong toLongLong ( bool * ok = 0, int base = 10 ) const short toShort ( bool * ok = 0, int base = 10 ) const double toDouble ( bool * ok = 0 ) const float toFloat ( bool * ok = 0 ) const uint toUInt ( bool * ok = 0, int base = 10 ) const ulong toULong ( bool * ok = 0, int base = 10 ) const qulonglong toULongLong ( bool * ok = 0, int base = 10 ) const ushort toUShort ( bool * ok = 0, int base = 10 ) const参数ok结果说明转换是否成功。
QString str; bool ok; double d = str.toDouble(&ok); if(ok) { cout << str << endl; } else { cout << "error." << endl; }
(3)字符串比较
int compare ( const QString & other ) const int compare ( const QString & other, Qt::CaseSensitivity cs ) const int compare ( const QLatin1String & other, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const int compare ( const QStringRef & ref, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
QString().isNull(); // returns true QString().isEmpty(); // returns true QString("").isNull(); // returns false QString("").isEmpty(); // returns true QString("abc").isNull(); // returns false QString("abc").isEmpty(); // returns false
QString left ( int n ) const //取左边的n个字符。
QString right ( int n ) const //取右边的n个字符。
replace()函数提供方法替换字符串。
remove()函数从字符串中移除字符。
split()函数拆分字符串。
mid()取子串。