QString类详解

article/2025/9/12 7:46:49

文章目录

          • 一、简要介绍
            • 1.1 隐式共享
          • 二、常用方法
            • 2.1 常用构造函数
            • 2.2 字符串与数值之间的转换
            • 2.3 添加字符串
            • 2.4 大小写转换
            • 2.5 长度
            • 2.6 其他常用函数

一、简要介绍

在Qt中表示字符串的类是QString类,它存储字符串是采用的Unicode码,编码方式是使用UTF-16来进行编码的,也就是一个字符(两个字节),一个中文汉字一般情况下是两个字节。

1.1 隐式共享

QString类采用了隐式共享的机制,那什么是隐式共享呢?
隐式共享:就是最大化资源的有效利用和最小化复制克隆操作。它是一种对象的管理方法(由隐式共享类所创建的对象),当对象作为函数参数传递的时候,不仅安全而且效率很高,因为传递的时候只是传递的该对象的指针,数据本身只当自己被修改的时候才会去复制。简称写时复制。数据相同时,执行浅拷贝,仅复制指向数据块(包括引用计数器和真实数据)的指针,数据不同时则执行深拷贝。隐式共享技术可以大大降低对内存的开销及CPU资源的消耗,很大程度提高应用程序的运行效率。

它的实现手段是引用计数,当数据相同时,只改变计数器的值(浅拷贝),当不同时才会进行分配资源进行(深拷贝)。
如下代码:

	QString s1 = "Hello";  //数据块 “Hello” 计数器为1QString s2 = s1;		//数据块 “Hello” 计数器为2

在这里插入图片描述

	QString s1 = "Hello";  //数据块 “Hello” 计数器为1QString s2 = s1;		//数据块 “Hello” 计数器为2QString s2 = "Hi";		//数据块 “Hi” 计数器为 1,数据块“Hello” 计数器为1

在这里插入图片描述

二、常用方法
2.1 常用构造函数

QString s1 = “Hello”;
QString s2(“world”);
QString s3 = s1;
//使用数组, QChar的大小是两个字节
QChar arr[] = {‘L’, ‘o’, ‘v’, ‘e’};
QString s4(arr, 4);

每个对象打印出来的结果如下:
在这里插入图片描述

2.2 字符串与数值之间的转换

在这里插入图片描述

2.3 添加字符串

也可以使用’+'号拼接字符串。
在这里插入图片描述

2.4 大小写转换

在这里插入图片描述

2.5 长度

在这里插入图片描述

2.6 其他常用函数

在这里插入图片描述
判断空字符串的区别:
在这里插入图片描述
在这里插入图片描述
若字符串为"123,aaa,999,ppp",当调用s,section(",", 0, 3)函数后:
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/c3qr4QQX.shtml

相关文章

QString(详解)

目录 一、QString转char* 二、合并字符串 三、分割字符串 split()函数 mid(pos,n)函数 QString::section truncate(int)函数,从指定位置截断字符串str 四、去除字符串两端的空白 QString::trimmed()函数 QString::simplified()函数 五、查找是否包含字符…

Java——JLabel自动换行问题

┏(ω)☞ 本专栏的目录(为您提供更好的查询方式)(点这里说不定有你想要的) JLabel类可显示文本,一般直接添加文字会导致如下问题(字体显示不全),在不同过增加文本框的长度的情况下可…

JLabel展示文本和图片

JLabel 构造方法 JLabel()创建一个不含图像,不含文本的 JLabel 对象 JLabel(String text)使用指定的文本创建一个 JLabel 对象 JLabel(Icon image)创建一个具有指定图像的 JLabel 对象 pack…

java设置JLabel字体字号颜色

JLabel jl; Font f new Font("宋体",Font.PLAIN,16); jl.setFont(f); jl.setForeground(Color.red); 效果图:

JLabel设置背景颜色和设置文字颜色

JLabel设置背景颜色: JLabel light1 new JLabel("wuli"); light1.setOpaque(true); //此句是重点,设置背景颜色必须先将它设置为不透明的,因为默认是透明的。。。 light1.setBackground(Color.GREEN); JLabel设置文字颜色&…

【Java|Swing】关于JLabel换行

最近在用Swing做Windows的窗口程序,在使用JLabel时发现使用\n没办法换行,于是乎借助百度一下弄懂了JLabel是如何实现换行的。 先可以看一下使用\n的效果 JLabel labelnew JLabel("数据版本\nv1.0.0"); 运行测试 很明显,换行失败了…

初识JFrame、JPanel、JLabel

JFrame:java图形化界面设计,是一个顶层的框架类,相当于容器。好比一个窗户的框子,这个框子可以嵌入几个玻璃窗。 JPanel:也是一个容器类,相当于一个大玻璃窗。 JLabel:是一些基础组件&#xff0…

JFrame,JPanel,JLabel详解

JFrame是一个顶层的框架类,好比一个窗户的框子。也是一个容器类。这个框子可以嵌入几个玻璃窗。 JPanel是一个容器类,相当于一大玻璃窗。 JLabel等是一些基础组件,它必须置于某个容器里,类似于窗花、剪纸,必须置于窗户…

Java图形界面之JFrame,JLabel,JButton

Java图形界面之JFrame,JLabel,JButton 前言 ​ Java第一卷​ 图形界面第一节 JFrame package Demo03;import javax.swing.*; import java.awt.*;public class JFrame01 {public static void main(String[] args) {JFrame f new JFrame("第一个Swi…

Java GUI编程4---标签组件JLabel

1. 认识JLabel JLabel组件表示的是一个标签,本身是用于显示信息的,一般情况下是不能直接更改器显示内容的。创建完的Label对象可以通过Container类中的add()方法,加入到容器中,JLabel类的常用方法和常量如下表所示。 序号常量描…

JLabel标签较为常见部分的使用方法

本篇文章将会教会大家如何使用JLabel 1添加JLabel //创建一个标签 JLabel jLabel new JLabel("Hi,我是标签"); //添加到面板 Jpanel1.add(jLabel); //将面板添加到窗口 jFrame.add(Jpanel1);2设置文本颜色 //设置文本颜色 jLabel.setForeground(Color.green);3设…

Java基础-JLable组件、文本框组件、JPanel轻量级容器、Swing事件处理三种方式、适配器

1、JLable标签组件 标签是一种可以包含文本和图片的非交互组件,其文本可以是单行文本,也可以是 HTML 文本。对于只包含文本的标签可以使用 JLabel 类,该类的主要构造方法有如下几种形式。 JLabel():创建无图像并且标题为空字符串…

06.JavaSwing(基础组件——JLabel类)

软件界面是软件和用户之间的交流平台,而组件则是绘制软件界面的基本元素,是软件和用户之间的交流要素。 一、概述 JLabel组件用来显示文本和图像,可以只显示其一种,也可以同时显示。JLabel类提供了一些列用来设置标签的方法。 二…

从DTW到DILATE---时序预测损失函数总结

时间序列预测损失函数 时间序列预测是指通过分析历史数据来预测未来数据的变化趋势。时间序列预测在许多领域都有着广泛的应用,例如金融、气象、交通等。为了能够准确预测未来数据,时间序列预测中损失函数的选择非常关键。损失函数的选择直接影响模型的…

DTW算法——matlab实现(二)

DTW算法——Matlab实现 本文只是简单的介绍DTW算法的目的和实现。具体的DTW可以参考一下文献: 离散序列的一致性度量方法:动态时间规整(DTW) http://blog.csdn.net/liyuefeilong/article/details/45748399 动态时间归整/规整/弯曲…

【时间序列】DTW算法详解

作者 | 追光者 研究 | 机器学习与时间序列 出品 | AI蜗牛车 1.DTW 1.1 时序相似度 在时间序列数据中,一个常见的任务是比较两个序列的相似度,作为分类或聚类任务的基础。那么,时间序列的相似度应该如何计算呢? “ 经典的时间序列相…

学习dtw-python库内容 动态弯曲距离(DTW)具体实现

文章目录 一、install 数据包二、函数功能三、函数的参数以及含义四、具体实现 一、install 数据包 简单的pip install一下就好了,注意最后提示Successfully installed dtw-python-1.3.0 pip install dtw-python二、函数功能 执行 DTW 算法,并计算两个…

DTW距离

DTW(dynamic-time-wraping) 当两个时间序列等长时,我们可以使用欧氏距离来度量两者的相似性。但是当两个时间序列不等长时,欧氏距离就难以度量两者的相似性了。因此,国外学者提出了动态时间弯曲距离(Dynamic time war…

【时间序列】动态时间规整(DTW)算法简介(python)

简介 动态时间规整:(Dynamic Time Warping,DTW) 定义:用于比较不同长度的两个数组或时间序列之间的相似性或计算两者间的距离。 例1:a [1,2,3],b[3,2,2] 例2:a[1,2,3],b[2,2,2,3,4] 例1好计算,但对于例2&am…

【积】fast-DTW及其代码详解

fast-DTW 在解说中适合一个单特征的时间序列,在附录中修改了距离函数从而适合多个特征的时间序列。且距离函数用的是L1距离。如果是其他距离函数,修改即可。 1. DTW常用的加速手段 1.1 限制 亦即减少D的搜索空间,下图中阴影部分为实际的探…