QString 是 Qt 内部的一种字符串数据类型,QString 支持多字节编码(unicode)的一个字符串类。在程序和网络之间传输数据时,其他的程序和网络另一端的程序是不能识别他这种数据类型的。所以要想将 QString 类型的数据保存到文件或发送到网络,需要转换成 QByteArray 类型才可以。
QString 像 MFC 中的 CString 一样,具备很多处理字符串的成员函数,比如 mid()、size()、isEmpty()、toFloat()、toInt()等功能,具体可以参见 Qt 帮助文档。
下面代码演示了一些比较常用的字符串处理的成员函数:
#include <QString> #include <QByteArray> #include <QDebug> int main() { // 以 UTF-8 编码 QString str = "中国好美"; qDebug() << str << "size =" << str.size(); QByteArray buf = str.toUtf8(); qDebug() << str.toUtf8() << "QByteArray size =" << buf.size(); // 整数和字符串转换 str = QString::number(1.6); // number 是一个静态成员函数 // 字符串转换为整数或浮点数 str.toFloat(); str.toInt(); // 字符串格式化方式1 QString str2 = QString().sprintf("%d, %d", 1, 3); qDebug() << "sprintf format =" << str2; // 字符串格式化方式2 QString str3 = QString("%2 this %3 is %1").arg(1.5).arg(2).arg("abc"); qDebug() << "arg format =" << str3; // 如果参数类型一样,也可以在一个arg中填写 QString str4 = QString("%2 this %3 is %1").arg("abc", str2, "def"); qDebug() << "arg format =" << str4; // 重载了+操作符 str4 += "hello"; // 判断是否为空 str4.isEmpty(); str4.isNull(); str4.size(); // 把所有空白符、换行 \t \n 多个空格等都换成一个空格 str4 = "\t adsf asdflkjahsdkjf sd sdkjf hakjshdfkjh \nasdf asdfasd a"; qDebug() << str4.simplified(); return 0; }