关于QString的常见用法(详细讲解)

2023-11-15

QString类提供一个unicode字符串。在QT软件开发平台中常用到的一种变量类型,其提供了很多方便的应用方法。下面介绍一些关于QString的常见用法。

1.字符串末尾追加

//example 1
   QString str="hello";
   str.append("world");
   qDebug() <<str;    //str=hello world

//example 2
   QString str="hello";
   str=str+"world";
   qDebug() <<str;     //str=hello world

//example 3
   QString str="hello";
   str+="world";
   qDebug() <<str;     //str=hello world

2.取出字符串中指定位置的字符

    QString str="hello world";
    char ch;
    ch=str.at(1).unicode();
    qDebug() <<ch;  //ch=e

3.从字符串末尾删除若干个字符

    QString str="hello world";
    str.chop(2);
    qDebug() <<str; //str= hello wor

4.清空字符串

    //example 1
    QString str="hello world";
    str.clear();
    qDebug() <<str.size(); //str=""

    //example 2
    QString str="hello world";
    str="";
    qDebug() <<str.size(); //str=""

5.字符串比较

    int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive);  // x == 0
    int y = QString::compare("aUtO", "AuTo", Qt::CaseSensitive);    // x > 0

    int z = QString::compare("auto", "Car", Qt::CaseSensitive);     // y > 0
    int k = QString::compare("auto", "Car", Qt::CaseInsensitive);   // z < 0

    //CaseInsensitive:不区分大小写  CaseSensitive:区分大小写

 6.字符串str1是否包含str2字符串

    QString str1 = "Peter Pan";
    QString str2 = "peter";
    bool rel;
    rel=str1.contains(str2, Qt::CaseInsensitive);   //CaseInsensitive:不区分大小写
    qDebug() <<rel; // returns true

 7.字符串str2在字符串str1中出现过几次

    QString str1 = "HELLO world hello world";
    QString str2 = "hello";
    int rel;
    rel=str1.count(str2, Qt::CaseInsensitive); //搜索不区分大小写
    qDebug() <<rel; // rel=2

 8.字符串str1是否以str2结尾

    QString str = "Bananas";
    str.endsWith("anas");         // returns true
    str.endsWith("pple");         // returns false
            

9.搜索字符串str2在字符串str1第一次出现的位置

    QString str1 = "sticky question"; //包含了2个 “sti”
    QString str2 = "sti";

    //从位置0开始搜索
    str1.indexOf(str2);               // returns 0  (第一次出现位置0))

    //从位置1开始搜索
    str1.indexOf(str2, 1);            // returns 10 (第一次出现位置10))

    //从位置10开始搜索
    str1.indexOf(str2, 10);           // returns 10 (第一次出现位置10)

    //从位置11开始搜索
    str1.indexOf(str2, 11);           // returns -1 (不存在)

10.在字符串str1指定位置中插入str2

    QString str1 = "Meal";
    QString str2 = "ontr";

    str1.insert(1, str2); //从位置1开始插入
    // str1 == "Montreal"

11.判断字符串str是否为空,是否没有字符

    //字符串没有字符
    QString().isEmpty();            // returns true
    QString("").isEmpty();          // returns true
    QString("x").isEmpty();         // returns false
    QString("abc").isEmpty();       // returns false
    
    //字符串为空
    QString().isNull();             // returns true
    QString("").isNull();           // returns false
    QString("abc").isNull();        // returns false

12.计算字符串str长度

    QString str = "hello";
    int rel=str.length();
    qDebug() <<rel; // rel=5

13.从字符串str1中指定位置截取字符

    QString str1 = "Nine pineapples";

    //从位置5开始截取,截取4个字符
    QString str2 = str1.mid(5, 4);      // str2 == "pine"
     //从位置5开始截取,截取到最后
    QString str3 = str1.mid(5);         // str2 == "pineapples"

14.从字符串str中指定位置开始移除若干个字符

    QString str = "Montreal";
    //从位置1开始,移除4个字符
    str.remove(1, 4);// str == "Meal"

15.从str1字符串中指定位置开始替换若干个字符

    QString str1 = "Say yes!";
    QString str2 = "no";

    //从位置4开始,替换3个字符
    str1.replace(4, 3, str2); // str1 == "Say no!"

16.以指定字符对字符串进行分割,将分割后的某一段取出 

    QString str;
    QString csv = "forename,middlename,surname,phone";
    QString path = "/usr/local/bin/myapp"; // 第一个字段是空的
    QString::SectionFlag flag = QString::SectionSkipEmpty;

    //以“,”为分隔符,将从左往右的第2段返回
    str = csv.section(',', 2, 2);   // str == "surname"
    qDebug() <<str;
    //以“/”为分隔符,将从左往右的第3段到第4段返回
    str = path.section('/', 3, 4);  // str == "bin/myapp"
    qDebug() <<str;
    //以“/”为分隔符,将从左往右的第3段(忽略前面的空字段)
    str = path.section('/', 3, 3, flag); // str == "myapp"
    qDebug() <<str;
    
    //前面符号表示从右往左计数
    str = csv.section(',', -3, -2);  // str == "middlename,surname"
    str = path.section('/', -1); // str == "myapp"

    //这里除了可以以单个字符','为分割符外,还可以以"**"字符串为分割符号,可自行实验

17.数字转字符串

    QString str;
    
    //10代表以10进制转换成字符串(允许范围2~36)
    str.setNum(1234,10);       // str == "1234"
    //'g'代表精度
    str.setNum(12.34,'g',10);       // str == "12.34"

18.格式化转化为字符串

    QString str;
    int value=1998;
    str.sprintf("value=%d",value);
    qDebug() <<str; //str="value=1998"

19.判断字符串str是否以字符串str2开头

    QString str = "Bananas";

    str.startsWith("Ban",Qt::CaseSensitive);         // returns true
    str.startsWith("ban",Qt::CaseInsensitive);       // returns true
    str.startsWith("Car",Qt::CaseSensitive);         // returns false

20.字符串str转化为数值

    //example 1      QString >> double
    bool d;
    d = QString( "1234,56" ).toDouble(&ok); // ok == false
    d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56

    //exapmle 2      QString >> folat
    QString str1 = "1234.56";
    str1.toFloat();             // returns 1234.56

    bool ok;
    QString str2 = "R2D2";
    str2.toFloat(&ok);          // returns 0.0, sets ok to false

    //exapmle 3     QString >> int 
    QString str = "FF";
    bool ok;
    //16表示十六进制
    int hex = str.toInt(&ok, 16);       // hex == 255, ok == true
    //10表示十进制 转换失败
    int dec = str.toInt(&ok, 10);       // dec == 0, ok == false

21.将字符串str中所有的字母转化为小写字母或大写字母

    //example 1   大写转小写
    QString str = "The Qt PROJECT";
    str = str.toLower();        // str == "the qt project"

    //example 2   小写转大写
    QString str = "TeXt";
    str = str.toUpper();        // str == "TEXT"

22.从指定位置截断字符串str

    QString str = "Vladivostok";
    str.truncate(4);    // str == "Vlad"

23.QString支持的操作符号有:

用于字符串之间比较:"!="  "<" "<=" "==" ">="

用于字符串之间传递:"+=" "="

 

《聪明在于勤奋,天才在于积累——华罗庚 》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于QString的常见用法(详细讲解) 的相关文章

  • qt中解决QString中文乱码问题方法

    Qt中解决中文乱码的问题 qt中一般在设计师界面中设置的中文标题啥的都能正常显示 但是在QString中 xff0c 比如QPainter在绘制Text的时候 xff0c 传入的 char 如果含有中文 xff0c 则一般都会显示乱码 这个
  • std::string、const char*、QString之间相互转换

    字符串转换 std string 转 const char std string str 61 34 string 34 const char cstr 61 str c str const char 转 std string span c
  • Qt中 QString 和int, char等的“相互”转换

    原文链接 xff1a https blog csdn net ei nino article details 7297791 Qt中 int float double转换为QString 有两种方法 1 使用QString number 如
  • QString和QDateTime之间的相互转换

    1 QDateTime 转换为QString QString strBuffer QDateTime time time 61 QDateTime currentDateTime strBuffer 61 time toString 34
  • Qt学习 第37节:QString

    在阅读QString文档时 xff0c 出了一个词 implicit sharing copy on write xff0c 不是很懂 xff0c 下面链接解释的表明白 QT的隐式共享 Implicit Sharing 道路与梦想 CSDN
  • Qt中QString与String的互相转换

    前言 Qt中的一些类型是Qt自己封装的 xff0c 例如我们平常常见的String在Qt中就是QString xff0c 但是有时我们调用第三方库时 xff0c 参数要求是String xff0c 这时我们就需要把QString转换成Str
  • QString : 类型转换,不留神就留坑?

    QString作为Qt中内置的数据类型 功能强大且使用方便 绝对是在Qt开发过程中出场率最高的数据类型 本篇我们只重点探讨下QString转换成其他数据类型的注意事项 short toShort bool ok nullptr int ba
  • QString,const char*,char*相互直接转换方法

    整合网络上的解决方法 解决方法一 1 string转const char string s abc const char c s s c str const char 转string 直接赋值即可 const char c s abc st
  • 关于QString的常见用法(详细讲解)

    QString类提供一个unicode字符串 在QT软件开发平台中常用到的一种变量类型 其提供了很多方便的应用方法 下面介绍一些关于QString的常见用法 1 字符串末尾追加 example 1 QString str hello str
  • 将带有百分比编码的 QUrl 转换为字符串

    我使用用户输入的 URL 作为文本来初始化 QUrl 对象 稍后我想将 QUrl 转换回字符串以显示它并使用正则表达式检查它 只要用户不输入任何百分比编码的 URL 这种方法就可以正常工作 为什么下面的示例代码不起作用 qDebug lt
  • 在 Qt 中将字符数组的内容复制到 QString

    我有一个字符指针 在任何运行中都可以有不同的长度 例如 char myChar 一次运行其内容可以是 Hi 在另一次运行中它可以是 Bye 我想复制内容myChar到 QString 例如如果我有 QString myString 我想复制
  • 如何在 QLineEdit 中使用 std::string ?

    我有以下问题 我正在尝试将我编写的大量代码与 Qt 界面集成 我的一些函数返回std string 我没有成功制作QLineEdit setText接受它们 其他函数返回char不要给我带来问题 我应该怎么办 谢谢 朱塞佩 尝试这个 std
  • 查找包含值的单元格的索引并突出显示 QTableView 中的所有这些单元格

    我们如何使用 QT c 找出 QTableView 中包含 QString 的单元格的索引 即行号和列号 P S 无需点击qtableview中的单元格 您可以使用findItems 功能找到您的细胞 findItems 函数使用给定标志在
  • 如何从qt中的字符串中获取子字符串?

    我有一个文本形式 Last Name SomeName Day 23 etc 从姓氏 SomeName 我想获取姓氏和单独的 SomeName 我尝试过使用 QRegularExpression QRegularExpression re
  • 将 QString 转换为 std::string

    我看过其他几篇关于将 QString 转换为 std string 的帖子 它应该很简单 但不知怎的 我收到了一个错误 我的代码使用cmake编译成VS项目 我使用的是VS Express 所以QT库没有问题 而且我编写的GUI除了这部分之
  • QString 到 unicode std::string

    我知道有很多关于转换的信息QString to char 但我仍然需要对这个问题进行一些澄清 Qt提供QTextCodecs 要转换QString 内部以 unicode 形式存储字符 QByteArray 允许我检索char 它表示某种非
  • 如何替换字符串中的QRegExp?

    我有一根绳子 例如 QString myString Today is Tuesday 要求是 当用户输入一个字符串时 如果该字符串包含在myString 那么该部分在myString应该是粗体 并且不区分大小写 Qt CaseInsens
  • 互换使用 std::string 和 QString

    我在我正在开发的图形和 GUI 组件软件系统中广泛使用 Qt 然而 对于大多数内部算法和数据处理来说 Qt 发挥的作用较小 我经常会遇到从 std string 转换为 QString 的需要 反之亦然 我的倾向是尽可能使用 std str
  • 将数字格式化为特定的 QString 格式

    我有一个关于将十进制数格式化为某种 QString 格式的问题 基本上 我的程序中有一个可以接受任何值的输入框 我希望它将这个框中的值转换为格式 05 30 基于该值 该值将限制为 99 99 一些例子包括 2 gt 00 02 1 5 g
  • for循环中的Qt字符串生成器

    下列的this http labs qt nokia com 2011 06 13 string concatenation with qstringbuilder and this http doc snapshot qt project

随机推荐

  • Elasticsearch 架构解析与最佳实践

  • 基于Docker如何快速部署自己的ChatGPT

    背景 随着OpenAI在2022年底发布的LLM模型 ChatGPT展现出的强大效果 ChatGPT无疑成为了当下炙手可热的明星模型 现有的基于GPT的开源项目已经非常多 本文以现有的高热度github开源项目chatgpt web为例 教
  • 利用宏简化Q_PROPERTY动态属性的定义

    目录 写在前面 实现历程 传统定义方式 预想的方式 事实上有一点点区别 测试通过的例程 mainwindow h mainwindow cpp main cpp 执行结果 Qt6 更新 写在前面 上一篇写了pyqt如何更加便利地定义动态属性
  • 【Unity VR开发】VRTK 3.3.0 配置与基本使用

    VRTK3 3 开发日志 2021 11 16更新 半年前第一次接触VR开发 看B站Siki学院的视频做的笔记 今天整理一下 以供没接触过VR开发的人来学习 有些地方没有配图 但个人认为影响不大 按文字说明一步步来操作还是没问题的 笔记参考
  • Python 和Java 哪个更适合做自动化测试?

    很多小伙伴工作在功能测试行业工作了2 3年后 发现自己已经把功能测试做的非常好了 已经到职业发展和薪资发展的瓶颈期了 就想着学点东西 提提升一下技能 而对于功能测试升级来说 一般有这么3个主流的发展方向 一是性能测试 一是接口测试 一是自动
  • 奶酪【BFS】

    题目链接 点从z 0为起点 想跑到z h 只能在球内 或者是球表层上跑 问能否从起点跑到终点 直接暴力bfs判断即可 include
  • linux下nodejs依赖库libuv库,开发环境准备

    nodejs底层使用libuv库实现异步IO 如果对nodejs的回调函数习以为常 而不知libuv 那岂不是很遗憾 libuv在github上托管了自己的源码 但是我要学习的是希望适用于nodejs某一个版本的 这样的代码是可以经过简单处
  • 华为OD机考攻略一文了解!最新岗位带你起飞

    了解透了华为OD是什么 准备好投递动作了 那就来看看整体的推进流程吧 一般经过 机考 线上 技术面试2轮 资格面试 1轮 综合面试 1轮 全程线上搞定全流程 对于异地的朋友很友好 机考准备之后 其他面试都在一周内完成 所以机考的准备尤为重要
  • 网络志愿者微公益行

    活动中 网络志愿者将书包和牛奶作为新年礼物送给孩子们 并走到愿望墙 一对一完成孩子们的小小愿望 发动仪式完毕后 网络志愿者深化贫困学生家中 详细了解他们的生活困难 并活跃协助处理
  • h5逻辑_H5+app 混合开发

    目录 app分类 h5与原生进行交互 1 判断h5页面打开的环境是ios android 2 JS与客户端互相调用 js调用ios的方法 js调用android的方法 error android接收不到参数 js调用ios与android的
  • redis学习

    1 yfk 博客 Redis http blog csdn net yfkiss article category 1059564
  • Cookie与Session机制,以及scrapy中cookiejar的理解

    Http协议 http是一种无状态协议 先说什么是协议 说白了就是通讯过程中的一种规范 要求 那什么是无状态的呢 就是我们在向服务器请求一个页面的过程中 并不是一个持久性的连接 而是客户端发送一个请求 比方说 我打开腾讯网 然后服务器端返回
  • 惠普PC服务器HP DL360G5网卡的安装

    在惠普服务器 HP DL360G5上安装Linux ES4 0的时候 系统不会自动检测到网卡并安装驱动程序 因此需要手动安装网卡的驱动程序 以下是网卡的安装方法 1 rpm ivh bnx2 1 4 43f 1 src rpm 回车 界面如
  • linux图形界面卡死

    项目场景 linux图形界面卡死 问题描述 鼠标能够移动 但是整个图形界面卡住 解决方案 进入linux下共有六个虚拟控台 f2 f6 分别对应这不同的权限 ctrl alt f2 提示登陆 此时登陆root用户 先输入账号 再输入密码 登
  • IP数据包格式

    IP数据包格式如下 版本号 Version 指 IP 协议的版本 通常为 IPv4 或 IPv6 首部长度 Header Length 指 IP 数据包的首部长度 以 32 位字 4 字节 为单位 区分服务 Differentiated S
  • 网站服务器商标属于哪类,网络水晶头属于商标哪个类别

    水晶头是一种能沿固定方向插入并自动防止脱落的塑料接头 俗称 水晶头 专业术语为RJ 45连接器 RJ 45是一种网络接口规范 类似的还有RJ 11接口 就是我们平常所用的 电话接口 用来连接电话线 之所把它称之为 水晶头 是因为它的外表晶莹
  • jmeter学习笔记(三)-性能测试概念

    性能测试相关概念 a 响应时间 是用户提交一个请求 系统从开始呈现到将所有信息都呈现到客户端所需要的时间 以一个web应用的页面响应时间为例 页面的响应时间可分解为 网络传输时间 N1 N2 N3 N4 应用延迟时间 A1 A2 A3 b
  • 如何在你的Android工程中启用K2编译器?

    如何在你的Android工程中启用K2编译器 K2编译器是用于Kotlin代码编译的最新 高效编译器 你现在可以尝试使用了 Kotlin编译器正在为Kotlin 2 0进行重写 新的编译器实现 代号K2 带来了显著的构建速度改进 编译Kot
  • 数学基础:向量求导整理

    0矩阵求导网站 不包括叉乘和点乘求导 http www matrixcalculus org 1标量对向量求导 标量 分子 分别对行 列向量 分母 各元素求导 结果仍为行 列向量 维度与分母一致 定义行向量 y T y
  • 关于QString的常见用法(详细讲解)

    QString类提供一个unicode字符串 在QT软件开发平台中常用到的一种变量类型 其提供了很多方便的应用方法 下面介绍一些关于QString的常见用法 1 字符串末尾追加 example 1 QString str hello str