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~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/178884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的mysql——面试题+答案(数据库设计)——第25期

MySQL数据库的设计是关系数据库设计的一个重要方面&#xff0c;涉及表的结构、索引、外键关系等。 需求分析&#xff1a; 在设计数据库之前&#xff0c;确保充分了解业务需求和数据关系&#xff0c;分析系统需要存储的数据以及各数据之间的关系。 规范化&#xff1a; 使用数据…

组合设计模式

package com.jmj.pattern.combination;/*** 菜单组件&#xff0c;属于抽象根节点*/ public abstract class MenuComponent {//菜单组件的名称protected String name;//菜单组件的层级protected int level;//添加子菜单public void add(MenuComponent menuComponent) {throw new…

12.Spring源码解析-其它标签解析

容易看出&#xff0c;Spring其实使用了一个Map了保存其映射关系&#xff0c;key就是命名空间的uri&#xff0c;value是NamespaceHandler对象或是Class完整名&#xff0c;如果发现是类名&#xff0c;那么用反射的方法进行初始化&#xff0c;如果是NamespaceHandler对象&#xff…

计算虚拟化之CPU——qemu解析

解析 qemu 的命令行&#xff0c;qemu 的命令行解析&#xff0c;就是下面这样一长串。 qemu_add_opts(&qemu_drive_opts);qemu_add_opts(&qemu_chardev_opts);qemu_add_opts(&qemu_device_opts);qemu_add_opts(&qemu_netdev_opts);qemu_add_opts(&qemu_nic_…

C语言枚举的作用是什么?

我在知乎上看到这个问题&#xff0c;一开始&#xff0c;也有一些疑惑&#xff0c;后面查了一些资料&#xff0c;对于这个问题&#xff0c;简单的说一下我的看法。 枚举有多大 枚举类型到底有多大&#xff0c;占多少空间呢&#xff1f;这个要具体情况具体分析&#xff0c;编译器…

Java中的mysql——面试题+答案(基本题)——第21期

在Java中使用MySQL是一个常见的面试话题。 什么是JDBC&#xff1f; 答案&#xff1a; Java数据库连接&#xff08;JDBC&#xff09;是Java编程语言中用于与数据库建立连接、执行SQL语句和处理结果的API。它提供了一种标准的接口&#xff0c;使得Java应用程序能够与各种关系型数…

【shell】多行重定向与免交互expect与ssh、scp的结合使用

目录 一、多行重定向 举例1&#xff1a;使用read命令接收用户的输入值会有交互过程 举例2&#xff1a;设置变量的值 举例3&#xff1a;创建用户密码 举例4&#xff1a;使用多行重定向写入文件中&#xff08;以repo文件举例&#xff09; 举例5&#xff1a;变量设定 二、免…

C++初阶模板

介绍&#xff1a; 我们先认识以下C中的模板。模板是一种编程技术&#xff0c;允许程序员编写与数据类型无关的代码&#xff0c;它是一种泛型编程的方式&#xff0c;可以用于创建可处理多种数据类型的函数或类&#xff0c;也就是说泛型编程就是编写与类型无关的通用代码&#xf…

Python---函数递归

编程思想&#xff1a;如何利用数学模型&#xff0c;来解决对应的需求问题&#xff1b;然后利用代码实现对应的数据模 算法&#xff1a;使用代码实现对应的数学模型&#xff0c;从而解决对应的业务问题 程序 算法 数据结构 在我们经常使用的算法中&#xff0c;有两种非常常…

淘宝详情API接口:一键获取商品信息

一、引言 淘宝作为中国最大的电商平台&#xff0c;拥有庞大的商品信息库。为了更好地利用这些数据&#xff0c;开发者可以通过淘宝提供的API接口来获取商品详情。本文将深入探讨如何使用淘宝详情API接口一键获取商品信息&#xff0c;通过实践操作和代码示例&#xff0c;带领读…

多线程(补充知识)

STL库&#xff0c;智能指针和线程安全 STL中的容器是否是线程安全的? 不是. 原因是, STL 的设计初衷是将性能挖掘到极致, 而一旦涉及到加锁保证线程安全,会对性能造成巨大的影响. 而且对于不同的容器, 加锁方式的不同, 性能可能也不同(例如hash表的锁表和锁桶). 因此 STL 默认…

【LeetCode】每日一题 2023_11_25 二叉树中的伪回文路径(dfs,数组/位运算)

文章目录 刷题前唠嗑题目&#xff1a;二叉树中的伪回文路径题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 这个月第一次周末早起~ 题目&#xff1a;二叉树中的伪回文路径 题目链接&#xff1a;1457. 二…

20世纪的葡萄酒有哪些创新?

葡萄酒是用酵母发酵的&#xff0c;直到20世纪中叶&#xff0c;这一过程都依赖于自然产生的酵母。这些发酵的结果往往不一致&#xff0c;而且由于发酵时间长&#xff0c;容易腐败。 酿酒业最重要的进步之一是在20世纪50、60年代引进了地中海的纯发酵菌种酿酒酵母&#xff0c;俗称…

你要的fiddler快捷键全部在这里了,学最全的快捷键,做最快的IT程序员

一、常用三个快捷键 ctrlX :清空所有记录 CtrlF&#xff1a;查找 F12&#xff1a;启动或者停止抓包 使用 QuickExec Fiddler2 成了网页调试必备的工具&#xff0c;抓包看数据。Fiddler2自带命令行控制。 fiddler 命令行快捷键&#xff1a;ctrl q &#xff0c;然后 输入 help…

FunASR语音识别(解决-高并发线程问题)

文章目录 一、FunASR二、上代码&#xff08;队列解决线程并发问题&#xff09;三、测试 一、FunASR 在我的另一个博客有介绍FunASR,并且进行了语者分离&#xff0c;不过最近FunASR自带了语者分离&#xff0c;挺好挺好&#xff0c;但是一直看社区就是大家都用python写&#xff…

Codeforces Round #911 (Div. 2)

A.Cover in Water 题意&#xff1a; 有一个 1 n 1 \times n 1n的水池&#xff0c;里面有些格子可以加水&#xff0c;有些格子是被堵上的&#xff0c;你可以进行以下两种操作&#xff1a; 1.往一个空的格子里加水 2.移除一个有水的格子中的水&#xff0c;并将这些水添加到另…

合并区间[中等]

一、题目 以数组intervals表示若干个区间的集合&#xff0c;其中单个区间为intervals[i] [starti, endi]。请你合并所有重叠的区间&#xff0c;并返回一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间。 示例 1&#xff1a; 输入&#xff1a;intervals […

【笔记】小白学习电路维修

学习视频&#xff08;b站&#xff09;&#xff1a;从0开始学电路 从0开始学电路维修 p1 黄色长方体元件P2 故障率最高的元件p3带芯铜丝线圈是什么区分电感和变压器接入电路分析&#xff1a; p4 交流和直流分界线整流桥接线整流桥故障判断 带色环的不一定是电阻 p1 黄色长方体元…

Windows10-用户账户控制、Windows远程桌面

Windows10用户账户控制怎么设置白名单 问题引出&#xff1a; 安装低版本搜狗输入法后经常弹出用户账户控制 解决方案&#xff1a; 全局模式&#xff1a; UAC控制最早出现在Windows Vista中&#xff0c;用户帐户控制&#xff08;UAC&#xff09;是一项旨在防止对您的计算机…

Django视图层

一、请求与响应 视图函数 视图函数&#xff0c;简称视图&#xff0c;属于Django的视图层&#xff0c;默认定义在views.py文件中&#xff0c;是用来处理web请求信息以及返回响应信息的函数&#xff0c;所以研究视图函数只需熟练掌握两个对象即可&#xff1a;请求对象(HttpRequ…