当前位置: 首页 > 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、定义…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...