介绍
(资料图)
采用Unicode编码
采用隐式共享技术,节省内存和不必要的数据拷贝
隐式共享介于浅拷贝和深拷贝之间,当两个string对象赋值时,会实现浅拷贝(共享一块内存),如果某个对象被修改了,则会实现深拷贝(从新开辟内存)
跨平台使用,不需要考虑不同平台的兼容性
QString直接支持字符串与数字的相互转换
QString直接支持字符串大小比较
QString直接支持不同字符编码间的相互转换
QString直接支持std::string和std::wstring的相互转换
QString直接支持正则表达式的应用
QString常用函数
static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };QString str(data, 4); //通过QChar宽字符初始化str = "hello"; //直接赋值str.length(); //获取字符串长度str.size(); //获取字符串数量,等价于length()str.capacity(); //获取容量,容量包含了当前string里不必增加内存就能使用的字符数str.isEmpty(); //如果str为空或为0 ,则返回true,否则返回falsestr.isNull(); //如果为0,则返回true,否则返回falsestr.clear(); //清空strstr. resize(8); //设置str的字符串长度str.fill("m"); //将str字符串,全部字符填为"m"str.fill("m",5); //填充5个字符"m",并修改str的字符串长度为5str.append("ABC"); //在str字符串末尾附加"ABC"子串str.prepend("abc"); //在str字符串头部添加"abc"子串str. chop(2); //从str字符串末尾, 去掉2个字符str = "Montreal";str.remove(1, 4); //从str下标1位置开始,清除4个字符, s = "Meal"str.setNum(1234.5); //数字转字符串 str = "1234.5"double val = str.toDouble(); //字符串转double val =1234.5/*arg()成员函数:通过string串里通过“%数字”表示argument(参数) */str = QString("%1,%2,%3,%4,%5,%6") .arg("A","B","C") .arg("D","E","D"); //字符串参数替换 str1 = "A,B,C,D,E,D"str = QString("%1,%2").arg(40).arg(40,0,16); //将40以16进制转换为字符串,如果想使用大写的话,通过toUpper()函数来实现//还可以这样写QString("%1").arg(cnt,5,10,QChar("0"); //输出00050,表示保留5位有效数字,floatcnt2=50.12345;qDebug()<QString str = "Bananas";str.startsWith("Ban"); //判断str的开头是否以"Ban"开头,returns truestr.startsWith("Car"); // returns false常用四则运算符:
QString str="*+-";str.indexOf(QRegExp("[+-]")); //匹配一次+或-,所以return 1str="*asd12345682";str.indexOf(QRegExp("23")); //匹配23成功,return 5str="*abcsd8de";str.indexOf(QRegExp("[0-9]")); //匹配一次0~9数字,所以return 6示例-通过四则运算匹配一个范围的数字
比如:
12.5-19.5Kg :提取出12.5 和19.5
125.68m~376.78m :提取出125.68和376.78
999.99美元 :提取出999.99
代码如下:
QString text = ui->stringText->text();QString number1,number2;int begin1=text.indexOf(QRegExp("[0-9]"));text.remove(0,begin1);int begin2=text.indexOf(QRegExp("[^0-9.]")); //找非0~9,小数点以外的字符位置if(begin1==-1){qDebug()<<"err";return ;}if(begin2!=-1) //比如 123XYZnumber1 = text.left(begin2);else //只有一个数字{number1 = text;qDebug()<<"range:"<打印如下:
其它使用:
QByteArray QString::toLocal8Bit () ;//获取字节数组对象char * QByteArray::data (); //通过字节数组对象的成员data函数,获取char数组【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】
点击这里:
Copyright 2015-2022 纵横晨报网 版权所有 备案号:浙ICP备2022016517号-12 联系邮箱:51 46 76 11 3 @qq.com