当前位置: 首页 > 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~~

相关文章:

qt QString常用方法

1. QString 尾部拼接,尾部插入字符.调用append()函数.同时,QString字符串直接用加号 也可以进行拼接. QString s "我的女神";s s "刘亦菲";s "最近可好?";s.append("你跑哪儿去了?");//拼接结果: 我的女神刘亦菲最近可好?你跑…...

吴恩达《机器学习》10-6-10-7:学习曲线、决定下一步做什么

一、学习曲线 1. 学习曲线概述 学习曲线将训练集误差和交叉验证集误差作为训练集实例数量&#xff08;m&#xff09;的函数绘制而成。这意味着从较少的数据开始&#xff0c;逐渐增加训练集的实例数量。该方法的核心思想在于&#xff0c;当训练较少数据时&#xff0c;模型可能…...

分子骨架跃迁工具-DiffHopp 评测

一、文章背景介绍 DiffHopp模型发表在ICML 2023 Workshop on Computational Biology&#xff08;简称&#xff1a;2023 ICML-WCB&#xff09;上的文章。第一作者是剑桥计算机系的Jos Torge。 DiffHopp是一个专门针对骨架跃迁任务而训练的E3等变条件扩散模型。此外&#xff0c;…...

MySQL双主双从数据库集群搭建

1 引言 在之前的文章中提到过相关搭建方法&#xff0c;具体请参考《MySQL主从数据库搭建》这篇文章&#xff0c;本文主要讲述双主双从&#xff0c;双主多从集群的搭建方式。 这里要问一个问题&#xff0c;为什么MySQL要搭建数据库集群呢&#xff1f;我想应该有以下几点原因&…...

vue实现动态路由菜单!!!

目录 总结一、步骤1.编写静态路由编写router.jsmain.js注册 2.编写permisstions.js权限文件编写permisstions.jsaxios封装的APIstore.js状态库system.js Axios-APIrequest.js axios请求实例封装 3.编写菜单树组件MenuTree.vue 4.主页中使用菜单树组件 总结 递归处理后端响应的…...

企业如何选择安全又快速的大文件传输平台

在现代信息化社会&#xff0c;数据已经成为各个行业的重要资源&#xff0c;而数据的传输和交换则是数据价值的体现。在很多场合&#xff0c;企业需要传输或接收大文件&#xff0c;例如设计图纸、视频素材、软件开发包、数据库备份等。这些文件的大小通常在几百兆字节到几十个字…...

springboot 自定义starter逐级抽取

自定义starter 背景:各个组件需要引入starter 还有自己的配置风格 –基本配置原理 &#xff08;1&#xff09;自定义配置文件 导入配置可以在配置文件中自动识别&#xff0c;提示 导入依赖后可以发现提示 &#xff08;2&#xff09;配置文件实现 –让配置文件对其他模块生…...

GAN:ImprovedGAN-训练GAN的改进策略

论文&#xff1a;https://arxiv.org/abs/1606.03498 代码&#xff1a;https://github.com/openai/improved_gan 发表&#xff1a;NIPS 2016 一、文章创新 1&#xff1a;Feature matching&#xff1a;特征匹配通过为生成器指定新目标来解决GANs的不稳定性&#xff0c;从而防止…...

docker限制容器内存的方法

在服务器中使用 docker 时&#xff0c;如果不对 docker 的可调用内存进行限制&#xff0c;当 docker 内的程序出现不可预测的问题时&#xff0c;就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后&#xff0c;可以将瘫痪范围控制在 docker 内。 因此&#…...

阿里达摩院裁撤量子实验室

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 马云的达摩院也不搞量子计算了&#xff0c;因为缺钱&#xff0c;整体裁掉了达摩院量子实验室&#xff0c;把所有的设备都赠送给了浙江大学。 达摩院量子实验室&#xff1a;总共30个研究员&#xf…...

mysql数据库基础知识,Mysql的索引和主键区别,数据库的事务的基本特性

文章目录 数据库基础知识Mysql的索引和主键的区别数据库的事务的基本特性 数据库基础知识 为什么要使用数据库 数据保存在内存 优点&#xff1a; 存取速度快 缺点&#xff1a; 数据不能永久保存 数据保存在文件 优点&#xff1a; 数据永久保存 缺点&#xff1a;1&#xf…...

解决Vscode使用git提交卡住的问题

使用Vscode的git提交代码经常会很慢/卡住。 先点击左下角&#xff0c;进入设置 找到git的配置(建议直接搜索)&#xff0c;把use Editor As commit input的勾选去掉即可解决。...

Linux C语言 32-网络编程之UDP例程

Linux C语言 32-网络编程之UDP例程 本节关键字&#xff1a;C语言 网络编程 UDP协议 套接字操作 服务端 客户端 相关C库函数&#xff1a;setsockopt, socket, bind, recvfrom, sendto, close 相关接口介绍 Linux C语言 30-套接字操作 例程执行任务说明 本例程中服务端的任务…...

ubuntu22.04系统下载程序和依赖,并拷贝到指定路径下

脚本1 apt install aptitude apt-get -d install xxx #xxx是待下载的安装包 mv /var/cache/apt/archives/* /home/tuners/1apt install aptitude apt-get -d install xxx mv /var/cache/apt/archives/*.deb /home/tuners/1 xxx 为程序包名称 /home/tuners/1为保存程序包的…...

Kafka KRaft 版本集群部署详细教程(附配置文件详细解释)

版本说明 Ubuntu 18.04.6Kafka 3.6.0JDK8 集群配置 操作系统ip域名Kafka Broker 端口Kafka Controller 端口Ubuntu 18.04.6192.168.50.131kafka1.com90929093Ubuntu 18.04.6192.168.50.132kafka2.com90929093Ubuntu 18.04.6192.168.50.133kafka3.com90929093 安装 vim, cur…...

在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1

在龙蜥 OS 23上&#xff0c;本来想使用二进制安装&#xff0c;结果发现没有针对龙蜥的列表&#xff1a; 于是想到了源码安装&#xff0c;下面我们列出了PG源码安装的步骤&#xff1a; 1.安装准备 1.1.创建操作系统组及用户 groupadd postgres useradd -g postgres -m postgr…...

UDP的不可靠性可以用来做什么

User Datagram Protocol&#xff08;UDP&#xff0c;用户数据报协议&#xff09;是互联网协议套件中的一种传输层协议。与TCP不同&#xff0c;UDP是一种无连接的、不可靠的协议。 要知道UDP可以用来做什么&#xff0c;首先我们要知道它有何特点: 1,无连接&#xff1a; UDP是一…...

vue3还用this吗?getCurrentInstance获取当前组件实例

在 Vue 2 中&#xff0c;this 关键字代表当前组件实例。在组件的选项对象中&#xff0c;this 可以用于访问组件实例的属性、方法以及 Vue 实例的一些特定方法。 在Vue3中&#xff0c;我们发现this是undefined&#xff0c;那我们真的没法使用this了吗&#xff1f;vu3给我们提供…...

高校学生宿舍公寓报修维修生活管理系统 微信小程序b2529

本课题要求实现一套基于微信小程序宿舍生活管理系统&#xff0c;系统主要包括&#xff08;管理员&#xff0c;学生、维修员和卫检员&#xff09;四个模块等功能。 使用基于微信小程序宿舍生活管理系统相对传统宿舍生活管理系统信息管理方式具备很多优点&#xff1a;首先可以大幅…...

C++类与对象(7)—友元、内部类、匿名对象、拷贝对象时编译器优化

目录 一、友元 1、定义 2、友元函数 3、友元类 二、内部类 1、定义 2、特性&#xff1a; 三、匿名对象 四、拷贝对象时的一些编译器优化 1、传值&传引用返回优化对比 2、匿名对象作为函数返回对象 3、接收返回值方式对比 总结&#xff1a; 一、友元 1、定义…...

Windows Defender控制工具:重新定义你对系统安全管理的理解

Windows Defender控制工具&#xff1a;重新定义你对系统安全管理的理解 【免费下载链接】defender-control An open-source windows defender manager. Now you can disable windows defender permanently. 项目地址: https://gitcode.com/gh_mirrors/de/defender-control …...

别再只画静态图了!用Qt QChart实现可交互波形图的5个高级技巧

别再只画静态图了&#xff01;用Qt QChart实现可交互波形图的5个高级技巧 在数据可视化领域&#xff0c;静态图表已经无法满足现代应用对用户体验的严苛要求。想象一下&#xff0c;当用户面对一个温度监测系统时&#xff0c;如果只能被动地观看一条固定不变的曲线&#xff0c;而…...

PyTorch 2.8通用镜像效果展示:Llama3+Phi-3-Vision图文理解→视频描述生成

PyTorch 2.8通用镜像效果展示&#xff1a;Llama3Phi-3-Vision图文理解→视频描述生成 1. 开箱即用的深度学习环境 PyTorch 2.8通用深度学习镜像为开发者提供了一个即开即用的强大环境。基于RTX 4090D 24GB显卡和CUDA 12.4深度优化&#xff0c;这个镜像让复杂的AI开发变得简单…...

Nunchaku-flux-1-dev在Ubuntu20.04上的部署教程:完整安装指南

Nunchaku-flux-1-dev在Ubuntu20.04上的部署教程&#xff1a;完整安装指南 想快速体验AI大模型的强大能力&#xff1f;本文将手把手带你完成Nunchaku-flux-1-dev模型在Ubuntu20.04系统上的完整部署&#xff0c;从零开始到成功运行&#xff0c;小白也能轻松搞定。 1. 环境准备与系…...

等高线转面(断边界处理+将线的高程属性赋予面)

1 引言想把获得的等高线转化为面&#xff0c;便于统计不同高程下的其他面shp数据&#xff0c;操作中发现两个问题&#xff1a;&#xff08;1&#xff09;等高线若不闭合&#xff0c;则无法生成面&#xff1b;&#xff08;2&#xff09;闭合的等高线生成面后&#xff0c;没有等高…...

LangChain进阶(三)CAMELBabyAGI

Agents智能体如何思考与行动...

告别手动!用ENVI 5.6的Batch Processing工具高效处理GF-2/GF-6卫星影像

卫星影像批处理革命&#xff1a;ENVI 5.6高效工作流全解析 当面对数十景GF-2/GF-6卫星影像时&#xff0c;传统的手动处理方法就像用勺子挖隧道——理论上可行&#xff0c;但效率低得令人崩溃。我曾亲眼见证一个测绘团队通宵达旦处理20景数据&#xff0c;而使用ENVI 5.6的Batch …...

AFArray:Arduino嵌入式平台的零堆内存动态数组模板库

1. AFArray&#xff1a;面向嵌入式Arduino平台的模板化动态数组抽象数据类型AFArray 是专为 Arduino 生态设计的轻量级、模板化&#xff08;Template-based&#xff09;数组抽象数据类型&#xff08;ADT&#xff09;&#xff0c;其核心目标是在资源受限的微控制器平台上提供接近…...

思科ITN 7.00 PTSA综合实验通关指南:多版本识别与满分配置解析

1. 思科ITN 7.00 PTSA实验版本差异全解析 第一次接触思科ITN 7.00 PTSA实验的同学&#xff0c;往往会被随机分配的不同实验版本搞得晕头转向。我当年备考时就遇到过这种情况——明明照着同学的满分答案配置&#xff0c;最后却连基础网络连通都做不到。后来才发现&#xff0c;原…...

LogicFlow 进阶实战:自定义节点连线规则与动态样式控制

1. LogicFlow自定义节点连线规则实战 LogicFlow作为一款专业的流程图编辑框架&#xff0c;最强大的特性之一就是可以精确控制节点间的连接规则。在实际业务流程建模中&#xff0c;我们经常需要限制某些节点的连接方式&#xff0c;比如&#xff1a; 开始节点不能被其他节点连接结…...