Qt则提供了自己的字符串实现:QString,QString以16位Uniode进行编码,采用隐式共享提升内存效率。
1. 操作字符串
- + += 操作符; QString str = “Hello”; str += ” World”; // str = “Hello World”
- append()函数追加, QString str = “Hello”; str.append(” World”);
- sprintf()函数; QString str; str.sprintf(“%s %s”, “Hello”, ” World”);
- arg()函数; QString str = QString(“%1 %2”).arg(“Hello”).arg(” Word”);
- trimmed()函数; 移除字符串两端的空白字符
- simplified()函数; 移除字符串两端的空白字符,使用单个空白字符“ ”替代字符串中的出现的空白字符
- replace()函数,支持多种重载,支持正则替换
2. 查询字符串
函数原型:startsWith/endsWith/contains 类似。
bool | startsWith(const QString & s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
- startsWith() 函数
- endsWith() 函数
- contains() 函数
- 比较操作符 ==、 >=、 <=、 >、 <
- QString::compare(const QString &s1, const QString & s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) 函数,可以指定大小写,QString 静态函数
3. 字符串转换
- 字符串转整形 toInt()、 toFloat()、 toDouble() 、toLong()、 toLongLong()
- 字符集转换 toAscii() toLatin1() toUTF8() toLocal8Bit()
- 数字转字符串QString::number() 静态函数 如QString::number(a, 16).toUpper(); // “3F”