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. 学习曲线概述 学习曲线将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制而成。这意味着从较少的数据开始,逐渐增加训练集的实例数量。该方法的核心思想在于,当训练较少数据时,模型可能…...
分子骨架跃迁工具-DiffHopp 评测
一、文章背景介绍 DiffHopp模型发表在ICML 2023 Workshop on Computational Biology(简称:2023 ICML-WCB)上的文章。第一作者是剑桥计算机系的Jos Torge。 DiffHopp是一个专门针对骨架跃迁任务而训练的E3等变条件扩散模型。此外,…...
MySQL双主双从数据库集群搭建
1 引言 在之前的文章中提到过相关搭建方法,具体请参考《MySQL主从数据库搭建》这篇文章,本文主要讲述双主双从,双主多从集群的搭建方式。 这里要问一个问题,为什么MySQL要搭建数据库集群呢?我想应该有以下几点原因&…...
vue实现动态路由菜单!!!
目录 总结一、步骤1.编写静态路由编写router.jsmain.js注册 2.编写permisstions.js权限文件编写permisstions.jsaxios封装的APIstore.js状态库system.js Axios-APIrequest.js axios请求实例封装 3.编写菜单树组件MenuTree.vue 4.主页中使用菜单树组件 总结 递归处理后端响应的…...
企业如何选择安全又快速的大文件传输平台
在现代信息化社会,数据已经成为各个行业的重要资源,而数据的传输和交换则是数据价值的体现。在很多场合,企业需要传输或接收大文件,例如设计图纸、视频素材、软件开发包、数据库备份等。这些文件的大小通常在几百兆字节到几十个字…...
springboot 自定义starter逐级抽取
自定义starter 背景:各个组件需要引入starter 还有自己的配置风格 –基本配置原理 (1)自定义配置文件 导入配置可以在配置文件中自动识别,提示 导入依赖后可以发现提示 (2)配置文件实现 –让配置文件对其他模块生…...
GAN:ImprovedGAN-训练GAN的改进策略
论文:https://arxiv.org/abs/1606.03498 代码:https://github.com/openai/improved_gan 发表:NIPS 2016 一、文章创新 1:Feature matching:特征匹配通过为生成器指定新目标来解决GANs的不稳定性,从而防止…...
docker限制容器内存的方法
在服务器中使用 docker 时,如果不对 docker 的可调用内存进行限制,当 docker 内的程序出现不可预测的问题时,就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后,可以将瘫痪范围控制在 docker 内。 因此&#…...
阿里达摩院裁撤量子实验室
我是卢松松,点点上面的头像,欢迎关注我哦! 马云的达摩院也不搞量子计算了,因为缺钱,整体裁掉了达摩院量子实验室,把所有的设备都赠送给了浙江大学。 达摩院量子实验室:总共30个研究员…...
mysql数据库基础知识,Mysql的索引和主键区别,数据库的事务的基本特性
文章目录 数据库基础知识Mysql的索引和主键的区别数据库的事务的基本特性 数据库基础知识 为什么要使用数据库 数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 数据保存在文件 优点: 数据永久保存 缺点:1…...
解决Vscode使用git提交卡住的问题
使用Vscode的git提交代码经常会很慢/卡住。 先点击左下角,进入设置 找到git的配置(建议直接搜索),把use Editor As commit input的勾选去掉即可解决。...
Linux C语言 32-网络编程之UDP例程
Linux C语言 32-网络编程之UDP例程 本节关键字:C语言 网络编程 UDP协议 套接字操作 服务端 客户端 相关C库函数: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上,本来想使用二进制安装,结果发现没有针对龙蜥的列表: 于是想到了源码安装,下面我们列出了PG源码安装的步骤: 1.安装准备 1.1.创建操作系统组及用户 groupadd postgres useradd -g postgres -m postgr…...
UDP的不可靠性可以用来做什么
User Datagram Protocol(UDP,用户数据报协议)是互联网协议套件中的一种传输层协议。与TCP不同,UDP是一种无连接的、不可靠的协议。 要知道UDP可以用来做什么,首先我们要知道它有何特点: 1,无连接: UDP是一…...
vue3还用this吗?getCurrentInstance获取当前组件实例
在 Vue 2 中,this 关键字代表当前组件实例。在组件的选项对象中,this 可以用于访问组件实例的属性、方法以及 Vue 实例的一些特定方法。 在Vue3中,我们发现this是undefined,那我们真的没法使用this了吗?vu3给我们提供…...
高校学生宿舍公寓报修维修生活管理系统 微信小程序b2529
本课题要求实现一套基于微信小程序宿舍生活管理系统,系统主要包括(管理员,学生、维修员和卫检员)四个模块等功能。 使用基于微信小程序宿舍生活管理系统相对传统宿舍生活管理系统信息管理方式具备很多优点:首先可以大幅…...
C++类与对象(7)—友元、内部类、匿名对象、拷贝对象时编译器优化
目录 一、友元 1、定义 2、友元函数 3、友元类 二、内部类 1、定义 2、特性: 三、匿名对象 四、拷贝对象时的一些编译器优化 1、传值&传引用返回优化对比 2、匿名对象作为函数返回对象 3、接收返回值方式对比 总结: 一、友元 1、定义…...
数据血缘断链,模型推理失准,合规审计失败——AI原生系统数据治理失效的4个致命信号,你中了几个?
第一章:AI原生软件研发中的数据治理策略 2026奇点智能技术大会(https://ml-summit.org) AI原生软件的研发范式从根本上重构了传统软件工程的数据边界——数据不再仅是输入或输出,而是模型行为、系统可解释性与合规性的核心载体。在该范式下,…...
AIGC 动态图表生成:从零到一实战指南
1. 为什么需要AIGC动态图表生成? 在日常工作中,我们经常需要将枯燥的数据转化为直观的图表。传统方式需要手动编写HTML、JS和ECharts代码,不仅耗时耗力,还容易出错。我曾经为了调整一个饼图的标签位置,花了整整一上午…...
基于VLOOKUP的3D Face HRN数据管理方案
基于VLOOKUP的3D Face HRN数据管理方案 用Excel函数解决AI训练数据的管理难题,让3D人脸重建的数据管理变得简单高效 1. 引言:当AI遇上Excel 在3D人脸重建项目中,最让人头疼的往往不是算法本身,而是海量训练数据的管理问题。想象一…...
DAMO-YOLO功能体验:实时动态交互界面,滑块调节检测灵敏度
DAMO-YOLO功能体验:实时动态交互界面,滑块调节检测灵敏度 想象一下,你正在处理一批监控录像,需要快速找出所有出现车辆的片段。传统方法可能需要你逐帧查看,或者依赖一个“死板”的检测系统,要么漏掉一些模…...
5个技巧,让Qwen-Image-2512-SDNQ帮你生成电商级产品图
5个技巧,让Qwen-Image-2512-SDNQ帮你生成电商级产品图 1. 为什么选择Qwen-Image-2512-SDNQ生成产品图 在电商运营中,高质量的产品图片直接影响转化率。传统摄影需要专业设备、场地和后期处理,成本高且周期长。Qwen-Image-2512-SDNQ模型通过…...
深度解析 Chromium WebUI 的生命周期与 IsJavascriptAllowed 崩溃之谜
在 Chromium (或基于其二次开发的浏览器等内核) 开发中,WebUI 是我们最常打交道的模块之一。诸如 chrome://settings、chrome://history 这些内置页面,都是通过 WebUI 机制实现前端 (HTML/JS) 与底层 C 的双向通信。然而,在处理后台异步任务向…...
【算法优化】基于网格划分的高效DBSCAN改进策略
1. 为什么需要优化DBSCAN算法? 第一次接触DBSCAN算法时,我被它的聚类能力惊艳到了——不需要预先指定簇数量,还能识别任意形状的簇。但当我用真实数据集测试时,电脑直接卡死,这才发现传统DBSCAN的O(n)时间复杂度有多可…...
卡证检测矫正模型一键部署教程:基于YOLOv8的快速环境搭建
卡证检测矫正模型一键部署教程:基于YOLOv8的快速环境搭建 你是不是也遇到过这样的麻烦?手里有一堆身份证、银行卡的照片,歪歪扭扭,背景杂乱,想用程序自动识别上面的信息,第一步就被“怎么把卡片区域准确地…...
CC-Link IE转Modbus TCP集成实战:耐达讯自动化网关在五星级酒店节能改造中的应用
在工业自动化系统集成领域,异构网络的数据交互始终是一个核心痛点。控制层普遍采用高性能的CC-Link IE工业以太网,以确保高速、确定的实时通信;而设备层往往存在大量基于Modbus TCP协议的通用设备,如变频器、智能仪表和传感器。这…...
wso~.升级到.需要更新的数据表戳
1. 架构背景与演进动力 1.1 从单体到碎片化:.NET 的开源征程 在.NET Framework 时代,构建系统主要围绕 Windows 操作系统紧密集成,采用传统的封闭式开发模式。然而,随着.NET Core 的推出,微软开启了彻底的开源与跨平台…...
