当前位置: 首页 > news >正文

qt QString常用方法

1.

QString 尾部拼接,尾部插入字符.调用append()函数.同时,QString字符串直接用加号+ 也可以进行拼接.

    QString s = "我的女神";s = s + "刘亦菲";s += "最近可好?";s.append("你跑哪儿去了?");//拼接结果: 我的女神刘亦菲最近可好?你跑哪儿去了?

2.

QString 在字符中插入字符,函数insert().insert()第一个参数是插入的起始位置,下标从0数起;第二个参数是要插入的字符.因为第二个参数是QByteArray字节数组.所以我们要使用toUtf8()把QString转换为QByteArrrray数据类型.当然也可以把插入位置定位到头部或者尾部,插入字符串.

    QString sMem = "三";QString sFish = "鱼的记忆是秒钟的故事";//insert()第二个形参是字节数组QByteArray;所以要把QString转为QByteArray.toUtf8()返回一个字节数组QByteArraysFish.insert(5,sMem.toUtf8());//插入结果:鱼的记忆是三秒钟的故事

3.

prepend()在字符串头部位置插入.

    QString ss = "好多";qDebug()<<sFish.prepend(ss);//输出结果:好多鱼的记忆是三秒钟的故事

4.

QString格式化.

方式1:使用函数sprintf().%s代表字符串,%d代表整数,%.1f代表浮点数小数点后有一位小数.

    QString s1;s1.sprintf("%s%d%s%.1f%s","史前",400,"万年前有",0.5,"个人类");//%.1f表示一位小数.//输出结果:史前400万年前有0.5个人类

 方式2:arg()函数.QString("%1%2%3%4%5").arg()...的写法不需要指明这些数据类型的替代符,只需要明确有几种数据段即可.像下面的就分成了5段.

    QString sPeople1;sPeople1 = QString("%1%2%3%4%5").arg("史前").arg(400).arg("万年前有").arg(0.5).arg("个人类");//输出结果:史前400万年前有0.5个人类

5.

at() 返回索引处的字符.该QString字符串有字符'c' 'r' 'a' 'b' '\0'.下标从0数起,at(2)就是定位到了字符a,因为at()函数返回的是QChar字符.所以用该字符变量c接收.

    QString sAnimal = "crab";QChar c  = sAnimal.at(2);//返回QChar类型

6.

replace() 替代字符.第一个参数:替代字符开始的位置;第二个参数:替代的长度;第三个参数:替代的字符.

    //原字符串:好多鱼的记忆是三秒钟的故事sFish.replace(9,3,"三个月");//起始位置,长度,替换字符//替代后:好多鱼的记忆是三个月的故事

7.

trimmed() 去除字符串两端的空格.

    QString sFish = "    好多鱼的记忆是三个月的故事    "    qDebug()<<sFish<<endl<<sFish.trimmed();//输出结果:好多鱼的记忆是三个月的故事

8.

simplified() 去除两端空格,中间空格以一个空格' '替代.这使得成为一个标准的英文句子.

    sFish = "   Fish   had a   bad memory.   ";qDebug()<<sFish<<endl<<sFish.simplified();//输出结果:Fish had a bad memory.

 

9.查询字符的函数:

startWith()是否以什么字符开头,endsWith()是否以什么字符结尾,contains(),是否包含该字符.返回值为 true或 false.

    QString sTom = "汤姆和猫是好朋友.";QString sCat = "Tom and Cat are good friends.";//是否以字符串"汤姆"开头.qDebug()<<sTom.startsWith("汤姆");        //输出结果:true//CaseSensitive:(默认)敏感匹配,区分大小写;//CaseInsensitive:不敏感匹配,不区分大小写qDebug()<<sCat.startsWith("tom",Qt::CaseSensitive);         //输出结果:falseqDebug()<<sCat.startsWith("Tom",Qt::CaseSensitive);         //输出结果:true//是否以字符串"Friends"结尾.qDebug()<<sCat.endsWith("Friends.",Qt::CaseInsensitive);    //输出结果:trueqDebug()<<sCat.endsWith("Friends.",Qt::CaseSensitive);      //输出结果:falseqDebug()<<sCat.contains("good");//是否包含该字符串.          //输出结果:tureqDebug()<<sCat.contains("Good",Qt::CaseSensitive);          //输出结果:false

10.

字符串比较compare() 返回值0表示相等==.compare()前2个参数是比较的对象.第3个参数设置是否为敏感匹配.

    qDebug()<<QString::compare("Tom","tom",Qt::CaseSensitive);//输出结果:false

11.

split分割字符串.参数就是以哪个字符作为分割字符串的标志.分割后的字符串保存在字符串链表QStringList里面.

    QString strTime = "1949/10/1";QStringList timeList = strTime.split("/");foreach(QString ss,timeList){//循环打印出每一个字符串.qDebug()<<ss;}

12.

mid()截取字符串.从字符串第中第5个字符开始截取,截取3个字符长度.

    QString sFriends = "汤姆和猫是好朋友.";qDebug()<<sFriends.mid(5,3);//输出结果:好朋友

13.

QString NULL字符串与空字符串的区别.(isNULL,isEmpty)

NULL字符串:调用默认构造函数QString(),或者(const char* c = 0)构造.

Empty字符串:只要是空的,字符长度为0没有数据.

    qDebug()<<QString().isNull();   //true  构造没有给任何的数据,调用默认构造函数.判断是否为NULLqDebug()<<QString().isEmpty();  //true//空字符串//NULL字符串:调用QString默认构造函数,获取使用(const char*)0qDebug()<<QString("").isNull();  //false-- 字符没有长度,但不为空qDebug()<<QString("").isEmpty(); //true    字符串为空,empty(),即字符长度为0const char* cc = 0;//const char cc = '\0';qDebug()<<QString(cc).isNull();  //ture    调用默认构造函数,或者(const char*c = 0)构造为NULL字符串qDebug()<<QString(cc).isEmpty(); //true

all~~

http://www.lryc.cn/news/247200.html

相关文章:

  • 吴恩达《机器学习》10-6-10-7:学习曲线、决定下一步做什么
  • 分子骨架跃迁工具-DiffHopp 评测
  • MySQL双主双从数据库集群搭建
  • vue实现动态路由菜单!!!
  • 企业如何选择安全又快速的大文件传输平台
  • springboot 自定义starter逐级抽取
  • GAN:ImprovedGAN-训练GAN的改进策略
  • docker限制容器内存的方法
  • 阿里达摩院裁撤量子实验室
  • mysql数据库基础知识,Mysql的索引和主键区别,数据库的事务的基本特性
  • 解决Vscode使用git提交卡住的问题
  • Linux C语言 32-网络编程之UDP例程
  • ubuntu22.04系统下载程序和依赖,并拷贝到指定路径下
  • Kafka KRaft 版本集群部署详细教程(附配置文件详细解释)
  • 在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1
  • UDP的不可靠性可以用来做什么
  • vue3还用this吗?getCurrentInstance获取当前组件实例
  • 高校学生宿舍公寓报修维修生活管理系统 微信小程序b2529
  • C++类与对象(7)—友元、内部类、匿名对象、拷贝对象时编译器优化
  • Django回顾2
  • <JavaDS> 二叉树遍历各种遍历方式的代码实现 -- 前序、中序、后序、层序遍历
  • 如何控制Spring工厂创建对象的次数?详解Spring对象的声明周期!
  • 计算机杂谈系列精讲100篇-【计算机应用】PyTorch部署及分布式训练
  • Opencv-C++笔记 (19) : 分水岭图像分割
  • Linux以nohup方式运行jar包
  • 【c++|SDL】开始使用之---demo
  • leetcode:有效的括号
  • 使用STM32微控制器实现光电传感器的接口和数据处理
  • ELK企业级日志分析平台——kibana数据可视化
  • Shell条件变量练习