身边事
全球百事通!QT-QString类
发布时间:2023-05-21 16:58:11 文章来源:QT教程

Qt中的字符串类

介绍

采用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开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】

点击这里:

11.jpg

全球百事通!QT-QString类

全球快资讯:沈梦辰晒杜海涛520送花照,表扬男方拍照有进步,网友表示羡慕

焦点快看:一鸣食品:前4月净利润976.89万元 同比扭亏为盈

全球焦点!中国西藏发展论坛中外参访嘉宾在拉萨罗布林卡观藏戏跳锅庄

云南省多地民政部门“为爱加班”

公共 | 交流互鉴 携手共进 让边境地区文化更绚丽多彩 每日快看

夏川未来作品_夏川未来

学生信息管理系统课程设计报告c#语言-学生信息管理系统课程设计报告

淘气包埃米尔读后感_淘气包埃米尔梗概

520钇为3开启预售!9.79w起!|每日快看

视点!呼和浩特:点亮城市“夜经济” 释放文旅新活力

快讯:甘肃兰州:七里河首届百合音乐嘉年华活动启幕

甘肃成县:“小书屋”让村民“精神粮仓”更丰盈 观天下

今日视点:武汉工程大学维多利亚话剧团

广期所与中国石油国际事业有限公司签署合作框架协议

环球新消息丨分式计算题100道及答案小学_分式计算题100道及答案

全球快看点丨m是什么车型(准驾车型m是什么车?)

聚焦IPO | 下周新股发行节奏恢复常态化,部分公司经营独立性问题需要重视

环球热消息:【短期融资券新发公告】23胶州城投CP002今日发布发行公告

【新视野】弗赖堡结束两连败

天天热议:暮光之城破晓下演员表全部_暮光之城破晓下剧情简介

暴雨蓝色预警!今日南方降雨进入最强时段

甘肃张掖:相约520 20对新人喜结连理 当前动态

陕西省延安精神研究会召开五届一次理事会暨五届二次会员代表大会

速读:文件大小超出上传限制怎么办_文件大小

华远地产是国企吗_华远地产是国企_环球观点

龙之谷等级_龙之谷满级多少简介介绍-天天热推荐

天天实时:广州数字安全运营中心揭牌,505家单位数据安全实现统一保障

5.21浪漫限定 “德化最强音”冠军之夜|天天要闻

即时看!首届“保山小粒咖啡”文化月开幕

食品网络电视台 | 大众经济网 | 廊坊新闻网 | 魅力中国网 | 中国财讯网 | 中国食品网络电视台 | 新选择原创 | 生活新报 | 参考经济网 | 华夏财富网 | 手机资讯 | 百通网 | 手机电商 | 瑞克网