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

「QT」基础数据类 之 QString 字符串类

在这里插入图片描述

✨博客主页
何曾参静谧的博客
📌文章专栏
「QT」QT5程序设计
📚全部专栏
「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合
「C/C++」C/C++程序设计「DSA」数据结构与算法「UG/NX」NX二次开发
「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定制开发
「Py」Python程序设计「Math」探秘数学世界「PK」Parasolid函数说明

目录

    • Qt 5.15中的QString类详解
      • 一、引言
      • 二、使用范围
      • 三、类的头文件
        • 四、类的继承
      • 五、类的构造介绍
      • 六、公有函数介绍
      • 七、static函数介绍
      • 八、运算符重载
      • 九、详细代码举例

Qt 5.15中的QString类详解

一、引言

QString是Qt框架中的一个核心类,专门用于处理Unicode字符串。它提供了丰富的成员函数,用于字符串的创建、操作、查询和转换。在Qt应用程序开发中,QString扮演着非常重要的角色,特别是在人机交互中,所有需要用户输入或向用户展示的内容,最终都以字符串的形式存在,如UI界面、文本文件数据、数据库等。

二、使用范围

QString类适用于需要Unicode支持的应用场景。它提供了对Unicode字符串的完整支持,这意味着它可以用于处理任何语言和字符集,包括非拉丁语系字符集,如中文、日文或俄文等。此外,QString还提供了丰富的字符串操作和处理功能,可以用于存储和操作文本数据、显示图形界面文本、序列化和反序列化数据、处理文件和目录路径等方面。

三、类的头文件

QString类的头文件是<QString>。在使用QString类之前,需要在源文件中包含这个头文件。同时,为了使用QString类,还需要在项目的.pro文件中添加QT += core

四、类的继承

QString类没有直接的父类,它是Qt框架中独立的一个类。但是,QString类与Qt中的其他容器类(如QList、QLinkedList等)有着相似的接口和用法,这使得开发者可以更加方便地处理字符串数据。

五、类的构造介绍

QString类提供了多种构造函数,用于创建QString对象。以下是一些常用的构造函数:

  1. QString():构造一个空字符串。
  2. QString(const char *str):从ASCII字符串构造。
  3. QString(const QByteArray &ba):从QByteArray构造。
  4. QString(const QString &other):复制构造函数。
  5. QString(QChar ch):从单个QChar字符构造。
  6. QString(int size, QChar ch):用指定的字符填充指定大小的字符串。
  7. QString(QLatin1String str):从Latin-1编码的字符串构造。

六、公有函数介绍

QString类提供了大量的公有成员函数,用于字符串的操作和处理。以下是一些常用的公有函数:

  1. append(const QString &str):在字符串末尾追加另一个字符串。
  2. prepend(const QString &str):在字符串开头插入另一个字符串。
  3. insert(int position, const QString &str):在指定位置插入字符串。
  4. remove(int position, int n):移除指定位置和长度的字符串。
  5. replace(int position, int n, const QString &after):替换指定位置的字符串。
  6. clear():清除内容,变为空字符串。
  7. isEmpty():检查字符串是否为空。
  8. size() / length():返回字符串中的字符数。
  9. contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive):检查是否包含子字符串。
  10. startsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive):检查字符串是否以指定的子字符串开始。
  11. endsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive):检查字符串是否以指定的子字符串结束。
  12. compare(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive):比较字符串。
  13. toStdString():转换为标准库std::string。
  14. toUtf8():转换为UTF-8编码的QByteArray。
  15. toInt(int base = 10):转换为整数。
  16. toDouble():转换为双精度浮点数。
  17. toFloat():转换为单精度浮点数。
  18. mid(int position, int n):返回从指定位置开始的子字符串。
  19. left(int n):返回左侧的子字符串。
  20. right(int n):返回右侧的子字符串。
  21. split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive):根据分隔符分割字符串。

七、static函数介绍

QString类还提供了一些静态函数,用于执行一些常见的字符串操作。以下是一些常用的静态函数:

  1. QString::number(int n, int base = 10):将整数转换为字符串。
  2. QString::number(double n, char format = 'g', int precision = 6):将浮点数转换为字符串。
  3. QString::fromLatin1(const char *str, int size = -1):从Latin-1编码的字符串构造QString对象。
  4. QString::fromUtf8(const char *str, int size = -1):从UTF-8编码的字符串构造QString对象。

八、运算符重载

QString类重载了一些常用的运算符,使得字符串的操作更加方便。以下是一些常用的运算符重载:

  1. QString &operator+=(const QString &str):追加字符串。
  2. QString operator+(const QString &s1, const QString &s2):连接两个字符串。
  3. bool operator==(const QString &s1, const QString &s2):比较两个字符串是否相等。
  4. bool operator!=(const QString &s1, const QString &s2):比较两个字符串是否不相等。
  5. QString &operator=(const QString &other):赋值运算符。

九、详细代码举例

以下是一个使用QString类的详细代码示例,展示了如何创建、操作和查询字符串:

#include <QString>
#include <QStringList>
#include <QDebug>int main() {// 创建QString对象QString str1("Hello, World!");QString str2 = QString::fromUtf8("你好,世界!");QString str3(5, 'A'); // 用字符'A'填充长度为5的字符串// 追加字符串str1.append(" 追加内容");// 插入字符串str1.insert(5, "插入的");// 移除字符串str1.remove(13, 3); // 从索引13开始移除3个字符// 替换字符串str1.replace(6, 2, "替换");// 检查字符串是否为空bool isEmpty = str1.isEmpty();// 获取字符串长度int length = str1.length();// 检查是否包含子字符串bool contains = str1.contains("替换");// 检查字符串是否以指定子字符串开始或结束bool startsWith = str1.startsWith("Hello");bool endsWith = str1.endsWith("内容");// 比较字符串int compareResult = str1.compare(str2);// 转换为标准库std::stringstd::string stdStr = str1.toStdString();// 转换为UTF-8编码的QByteArrayQByteArray utf8ByteArray = str1.toUtf8();// 转换为整数bool ok;int intValue = str1.mid(11, 2).toInt(&ok, 10); // 提取子字符串并转换为整数// 分割字符串QStringList list = str1.split(" ");// 输出结果qDebug() << "str1:" << str1;qDebug() << "isEmpty:" << isEmpty;qDebug() << "length:" << length;qDebug() << "contains:" << contains;qDebug() << "startsWith:" << startsWith;qDebug() << "endsWith:" << endsWith;qDebug() << "compareResult:" << compareResult;qDebug() << "stdStr:" << stdStr.c_str();qDebug() << "utf8ByteArray:" << utf8ByteArray;qDebug() << "intValue:" << intValue;qDebug() << "list:" << list;return 0;
}

在这个示例中,我们展示了如何使用QString类的各种成员函数来创建、操作和查询字符串。通过这些示例,你可以更好地理解QString类的用法和功能。


在这里插入图片描述


http://www.mrgr.cn/news/72005.html

相关文章:

  • 阿里云通义大模型团队开源Qwen2.5-Coder:AI编程新纪元
  • 2024版本IDEA创建Sprintboot项目下载依赖缓慢
  • 在 .NET 6.0 中创建用于 CRUD 操作的 Web API
  • ECharts 实现大屏地图功能
  • 【神经科学学习笔记】基于分层嵌套谱分割(Nested Spectral Partition)模型分析大脑网络整合与分离的局部指标(二)
  • (一)- DRM架构
  • 基于正则化算法的SAR图像去噪matlab仿真
  • Spring框架之中介者模式 (Mediator Pattern)
  • SSH远程连接工具详解
  • CLion配置QT开发环境
  • javaSpringbootmsyql智慧园区管理系统的开发88160-计算机毕业设计项目选题推荐(附源码)
  • D3入门:学习思维导图 + 99个中文API详解
  • SpringBoot开发——整合 apache fileupload 轻松实现文件上传与下载
  • js三大组成部分
  • AI文献搜索工具:Lumina
  • 绿色未来之光:光伏发电的优缺点
  • git切换分支的时候,该分支内容被带到另一被切换分支!!!!
  • 深入理解 cached plan must not change result type 原理及解决办法
  • 使用Python查询数据库并生成报告的全流程指南
  • Jmeter中的定时器(二)
  • CSMA/CD和CSMA/CA
  • 【代码随想录day28】【C++复健】122.买卖股票的最佳时机II ;376. 摆动序列;53. 最大子序和
  • (67)RLS滤波器用于信道均衡时的判决引导(Decision-Directed)自适应模式的MATLAB仿真
  • rust高级特征
  • 基于微信小程序的养老院管理系统的设计与实现,LW+源码+讲解
  • Qt---双缓冲绘图