QString类方法和变量简介(全)
QString类方法和变量简介
- 操作字符串(+=|append|insert|sprintf|QString::arg()|prepend|replace|trimmed|simplified)
- 查询字符串(startsWith|endsWith|contains|localeAwareCompare|compare)
- 字符串转换
标准C++提供了两种字符串:一种是C语言风格的以"\0"字符结尾的字符数组;另一类是字符串类String。QT字符串类QString的功能更强大。QString类保存16位Unicode值。
操作字符串(+=|append|insert|sprintf|QString::arg()|prepend|replace|trimmed|simplified)
(1)QString提供一个二元的"+"操作符用于组合两个字符串,提供一个"+="操作符用于追加一个字符串到另一个字符串的末尾。
QString str1 = "Welcome ";
str1 = str1 + "to you!";
QString str2 = "Hello ";
str2 += "World!";
QString str1 = "Welcome " 将一个const char*类型的ASCII字符串 "Welcome"传递个QString,它被解释为一个典型的以"\0"结尾的C类型的字符串,这就导致会调用QString的构造函数来初始化字符串。
(2)QString::append()函数具有同"+="操作符相同的功能,在一个字符串的末尾追加另一个字符串
QString str1 = "Welcome ";
QString str2 = "to ";
str1.append(str2);
str1.append("you!");
// QT助手
QString &QString::append(const QString &str)
Appends the string str onto the end of this string.
Example:QString x = "free";QString y = "dom";x.append(y);// x == "freedom"
This is the same as using the insert() function:x.insert(x.size(), y);
The append() function is typically very fast (constant time), because QString preallocates extra space at the end of the string data so it can grow without reallocating the entire string each time.
(3)QString::sprintf()函数可用于组合字符串,其支持的格式定义符同C++库中的函数sprintf()定义一样。
QString str;
str.sprintf("%s","Welcome ");
str.sprintf("%s","to you!");
str.sprintf("%s %s","Welcome ","to you!");
// QT助手
QString &QString::sprintf(const char *cformat, ...)
This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.
Use asprintf(), arg() or QTextStream instead.
(4)QString::arg()函数是QT提供的另一种方便的字符串组合方式。相对于QString::sprintf()函数,QString::arg()函数是类型安全,完全支持Unicode,并且允许改变"%n"参数的顺序。
QString str;
str = QString("%1 is %2 years old.").arg("Xiaoming").arg(24); // Xiaoming is 24 years old
// QT助手
QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
Returns a copy of this string with the lowest numbered place marker replaced by string a, i.e., %1, %2, ..., %99.
fieldWidth specifies the minimum amount of space that argument a shall occupy. If a requires less space than fieldWidth, it is padded to fieldWidth with character fillChar. A positive fieldWidth produces right-aligned text. A negative fieldWidth produces left-aligned text.
This example shows how we might create a status string for reporting progress while processing a list of files:QString i; // current file's numberQString total; // number of files to processQString fileName; // current file's nameQString status = QString("Processing file %1 of %2: %3").arg(i).arg(total).arg(fileName);
First, arg(i) replaces %1. Then arg(total) replaces %2. Finally, arg(fileName) replaces %3.
One advantage of using arg() over asprintf() is that the order of the numbered place markers can change, if the application's strings are translated into other languages, but each arg() will still replace the lowest numbered unreplaced place marker, no matter where it appears. Also, if place marker %i appears more than once in the string, the arg() replaces all of them.
If there is no unreplaced place marker remaining, a warning message is output and the result is undefined. Place marker numbers must be in the range 1 to 99.
(5)其他字符串组合方法
insert()函数: 在原字符串特定的位置插入另一个字符串。prepend()函数:在原字符串的开头插入另一个字符串。replace()函数:用指定的字符串代替原字符串中的某些字符
(6)移除字符串两端的空白(空白字符包括回车符"\n"、换行字符"\r"、制表符"\t"、空格字符" "等)
QString::trimmed()函数:移除字符串两端的空白字符
// QT助手
QString QString::trimmed() const
Returns a string that has whitespace removed from the start and the end.
Whitespace means any character for which QChar::isSpace() returns true. This includes the ASCII characters '\t', '\n', '\v', '\f', '\r', and ' '.
Example:QString str = " lots\t of\nwhitespace\r\n ";str = str.trimmed();// str == "lots\t of\nwhitespace"
Unlike simplified(), trimmed() leaves internal whitespace alone.
QString::simplified()函数:移除字符串两端的空白字符,使用单个空格字符" "代替出现的空白字符
// QT助手
QString QString::simplified() const
Returns a string that has whitespace removed from the start and the end, and that has each sequence of internal whitespace replaced with a single space.
Whitespace means any character for which QChar::isSpace() returns true. This includes the ASCII characters '\t', '\n', '\v', '\f', '\r', and ' '.
Example:QString str = " lots\t of\nwhitespace\r\n ";str = str.simplified();// str == "lots of whitespace";
查询字符串(startsWith|endsWith|contains|localeAwareCompare|compare)
(1)QString::startsWith()函数判断一个字符串是否以某个字符串开头。第一个参数指定一个字符串,第二个参数指定是否大小写敏感(默认大小写敏感)
QString str = "Welcome to you! ";str.startsWith("Welcome", Qt::CaseSensitive); // 返回 truestr.startsWith("you", Qt::CaseSensitive); // 返回 false
// QT助手
bool QString::startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Returns true if the string starts with s; otherwise returns false.
If cs is Qt::CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.QString str = "Bananas";str.startsWith("Ban"); // returns truestr.startsWith("Car"); // returns false
(2)QString::endsWith()函数 判断一个字符串是否以某个字符串结尾
// QT助手
bool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
If cs is Qt::CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.QString str = "Bananas";str.endsWith("anas"); // returns truestr.endsWith("pple"); // returns false
(3)QString::contains()函数 判断指定的字符串是否出现过
// QT助手
bool QString::contains(const QString &str, Qt::CaseSensitivity cs = ...) const
Returns true if this string contains an occurrence of the string str; otherwise returns false.
If cs is Qt::CaseSensitive (default), the search is case sensitive; otherwise the search is case insensitive.
Example:QString str = "Peter Pan";str.contains("peter", Qt::CaseInsensitive); // returns true
(4)比较字符串
操作符< 、<=、 ==、>=
函数**localeAwareCompare(const QString &s1, const QString &s2)**,静态函数s1小于s2返回负整数,等于返回0,大于返回正整数。比较是基于本地字符集的,平台相关
// QT助手
[static] int QString::localeAwareCompare(const QString &s1, const QString &s2)
Compares s1 with s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.
The comparison is performed in a locale- and also platform-dependent manner. Use this function to present sorted lists of strings to the user.
On macOS and iOS this function compares according the "Order for sorted lists" setting in the International preferences panel.
函数**compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)**
// QT助手
[static] int QString::compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Compares s1 with s2 and returns an integer less than, equal to, or greater than zero if s1 is less than, equal to, or greater than s2.
If cs is Qt::CaseSensitive, the comparison is case sensitive; otherwise the comparison is case insensitive.
Case sensitive comparison is based exclusively on the numeric Unicode values of the characters and is very fast, but is not what a human would expect. Consider sorting user-visible strings with localeAwareCompare().int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive); // x == 0int y = QString::compare("auto", "Car", Qt::CaseSensitive); // y > 0int z = QString::compare("auto", "Car", Qt::CaseInsensitive); // z < 0
字符串转换
转换为数值类型
QString::toInt()、QString::toDouble()、QString::toFloat()、QString::toLong()、QString::toLongLong()等
// QT助手
int QString::toInt(bool *ok = nullptr, int base = 10) const
Returns the string converted to an int using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.
If ok is not nullptr, failure is reported by setting *ok to false, and success by setting *ok to true.
If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.
The string conversion will always happen in the 'C' locale. For locale dependent conversion use QLocale::toInt()
Example:QString str = "FF";bool ok;int hex = str.toInt(&ok, 16); // hex == 255, ok == trueint dec = str.toInt(&ok, 10); // dec == 0, ok == false
This function ignores leading and trailing whitespace.
转换为其他字符集
QString提供的字符集编码集转换函数将会返回一个const char*类型版本的QByteArray,即构造函数QByteArray(const char*)构造的QByteArray对象
// QT助手
QByteArray QString::toAscii() const
This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.
Returns an 8-bit representation of the string as a QByteArray.
This function does the same as toLatin1().
Note that, despite the name, this function does not necessarily return an US-ASCII (ANSI X3.4-1986) string and its result may not be US-ASCII compatible.
See also fromAscii(), toLatin1(), toUtf8(), toLocal8Bit(), and QTextCodec.
😚over😚
相关文章:
QString类方法和变量简介(全)
QString类方法和变量简介 操作字符串(|append|insert|sprintf|QString::arg()|prepend|replace|trimmed|simplified)查询字符串(startsWith|endsWith|contains|localeAwareCompare|compare)字符串转换 标准C提供了两种字符串:一种是C语言风格的以"\0"字符…...
中移链控制台对接4A平台功能验证介绍
中移链控制台具备单独的注册登录页面,用户可通过页面注册或者用户管理功能模块进行添加用户,通过个人中心功能模块进行用户信息的修改和密码修改等操作,因业务要求,需要对中移链控制台的用户账号进行集中管理,统一由 4…...
必知的Facebook广告兴趣定位技巧,更准确地找到目标受众
在Facebook广告投放中,兴趣定位是非常重要的一环。兴趣定位不仅可以帮助我们找到我们想要的目标受众,还可以帮助我们避免一些常见的坑。今天,就让我们一起来看看必知的Facebook广告兴趣定位技巧,更准确地找到目标受众。 1.不要只关…...
【MySQL】慢查询+SQL语句优化 (内容源自ChatGPT)
慢查询SQL语句优化 1.什么是慢查询2.优化慢查询3.插入数据优化5.插入数据底层是什么6.页分裂7.页合并8.主键优化方式10.count 优化11.order by优化12.group by 优化13.limit优化14.update 优化15.innodb 三大特征 1.什么是慢查询 慢查询是指执行SQL查询语句所需要的时间较长&a…...
HashMap底层源码解析及红黑树分析
HashMap线程不安全,底层数组链表红黑树 面试重点是put方法,扩容 总结 put方法 HashMap的put方法,首先通过key去生成一个hash值,第一次进来是null,此时初始化大小为16,i (n - 1) & hash计算下标值&a…...
科技云报道:一路狂飙的ChatGPT,是时候被监管了
科技云报道原创。 即使你过去从不关注科技领域,但近期也会被一个由OpenAI(美国的一家人工智能公司)开发的人工智能聊天机器人“ChatGPT”刷屏。 与上届“全球网红”元宇宙不同,这位新晋的“全能网友”似乎来势更加凶猛。 互联网…...
第四十四章 管理镜像 - 传入日记传输率
文章目录 第四十四章 管理镜像 - 传入日记传输率传入日记传输率镜像数据库状态 第四十四章 管理镜像 - 传入日记传输率 传入日记传输率 在备份和异步成员的镜像成员状态列表下方,自上次刷新镜像监视器以来日志数据从主服务器到达的速率显示在该成员的传入日志传输…...
加密解密学习笔记
加密种类 对称加密,分组对称加密算法 加密算法 AES(Advanced Encryption Standard)高级加密标准 DES(Data Encryption Standard)数据加密标准 3DES/Triple DEA (Triple Data Encryption Algorithm) 三重数据加密算…...
Spring 属性填充源码分析(简单实用版)
属性填充 属性填充只有 3 种方式 根据名称填充 根据类型填充 思考什么时候会出现呢??? 多见于第三方框架与 Spring集成,举例:Mybatis 与 Spring集成,把 Mapper 接口注册为 BeanDefinition 时候就指定了自…...
【机器学习分支】重要性采样(Importance sampling)学习笔记
重要性采样(importance sampling)是一种用于估计概率密度函数期望值的常用蒙特卡罗积分方法。其基本思想是利用一个已知的概率密度函数来生成样本,从而近似计算另一个概率密度函数的期望值。 想从复杂概率分布中采样的一个主要原因是能够使用…...
三角回文数+123
三角回文数:用户登录 问题描述 对于正整数 n, 如果存在正整数 k 使得 n123⋯kk(k1)/2, 则 n 称为三角数。例如, 66066 是一个三角数, 因为 66066123⋯363 。 如果一个整数从左到右读出所有数位上的数字, 与从右到左读出所有数位 上的数字是一样的, 则称这个数为…...
JAVA常用的异步处理方法总结
前言 在java项目开发过程中经常会遇到比较耗时的任务,通常是将这些任务做成异步操作,在java中实现异步操作有很多方法,本文主要总结一些常用的处理方法。为了简化,我们就拿一个实际的案例,再用每种方法去实现…...
GitLab统计代码量
gitlab官方文档:https://docs.gitlab.com/ee/api/index.html 1、生成密钥 登录gitlab,编辑个人资料,设置访问令牌 2、获取当前用户所有可见的项目 接口地址 GET请求 http://gitlab访问地址/api/v4/projects?private_tokenxxx 返回参数 …...
Linux TCP MIB统计汇总
概述 在 linux > 4.7 才将所有TCP丢包收敛到 函数 tcp_drop 中 指标详解 cat /proc/net/netstat 格式化命令 cat /proc/net/netstat | awk (f0) {name$1; i2; while ( i<NF) {n[i] $i; i }; f1; next} (f1){ i2; while ( i<NF){ printf "%s%s %d\n", …...
记录 docker linux部署jar
第一步 web sso user admin 中yml文件还原到阿里mysql数据库 第二步 各个jar进行打包处理 第三步 正式服务器的Jar备份 第四步 拉取以上jar包 到正式服务器中 第五步 查看 docker images 其中 web_service 1.0.2是上一个版本 上一个版本build 镜像命令是这样的(需…...
【Linux】教你用进程替换制作一个简单的Shell解释器
本章的代码可以访问这里获取。 由于程序代码是一体的,本章在分开讲解各部分的实现时,代码可能有些跳跃,建议在讲解各部分实现后看一下源代码方便理解程序。 制作一个简单的Shell解释器 一、观察Shell的运行状态二、简单的Shell解释器制作原理…...
onMeasure里如何重置只有1个子view一行满屏, 若有多个自适应一行
onMeasure里如何重置只有1个子view一行满屏, 若有多个自适应一行 可以尝试在 onMeasure 方法中重写 measureChildWithMargins 或 measureChild 方法来实现这个需求。 对于只有一个字的 View,我们可以把它的宽度设为屏幕宽度,高度设为最大高度,这样这个 View 就会占满一整行…...
Postman创建项目 对接口发起请求处理
查看本文之前 您需要理解了解 Postman 的几个简单工作区 如果还没有掌握 可以先查看我的文章 简单认识 Postman界面操作 那么 掌握之后 我们就可以正式来开启我们的接口测试 我们先选择 Collections 我们点上面这个加号 多拉一个项目出来 然后 我们选我们刚加号点出来的项目…...
在Vue3项目中js-cookie库的使用
文章目录 前言1.安装js-cookie库2.引入、使用js-cookie库 前言 今天分享一下在Vue3项目中引入使用js-cookie。 1.安装js-cookie库 js-cookie官网 安装js-cookie,输入 npm i js-cookie安装完成可以在package.json中看到: 安装以后,就可…...
【论文笔记】Attention和Visual Transformer
Attention和Visual Transformer Attention和Transformer为什么需要AttentionAttention机制Multi-head AttentionSelf Multi-head Attention,SMA TransformerVisual Transformer,ViT Attention和Transformer Attention机制在相当早的时间就已经被提出了&…...
DataQA数问增长:金融小贷行业的“智能风控大脑“实战揭秘
数问"Web渠道转化率仅0.2,欺诈风险高、客户资质差——你的渠道投放预算,有多少正在打水漂?" 💡 真实场景还原:某头部消费金融公司的渠道危机 时间:2026年3月,周一上午9:00 角色&…...
小白也能搞定:CYBER-VISION零号协议智能助盲系统部署全流程
小白也能搞定:CYBER-VISION零号协议智能助盲系统部署全流程 1. 系统介绍与准备工作 CYBER-VISION零号协议是一款专为视障人士设计的智能助盲系统,它通过先进的计算机视觉技术,将周围环境实时转化为可理解的语音提示。想象一下,当…...
Wan2.2-I2V-A14B企业级部署案例:单卡24GB显存实现高并发视频API服务
Wan2.2-I2V-A14B企业级部署案例:单卡24GB显存实现高并发视频API服务 1. 企业级视频生成解决方案概述 在数字内容创作领域,视频生成技术正经历革命性变革。Wan2.2-I2V-A14B作为新一代文生视频模型,通过私有化部署方案,为企业提供…...
3分钟上手弹幕盒子:零基础高效制作自定义弹幕的免费工具
3分钟上手弹幕盒子:零基础高效制作自定义弹幕的免费工具 【免费下载链接】danmubox.github.io 弹幕盒子 项目地址: https://gitcode.com/gh_mirrors/da/danmubox.github.io 弹幕盒子是一款专业的在线自定义弹幕生成工具,以轻量化架构设计为核心&a…...
Springboot 实现多数据源(PostgreSQL 和 SQL Server)连接
为 HagiCode 添加 GitHub Pages 自动部署支持 本项目早期代号为 PCode,现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力,让内容发布像喝水一样简单。 背景/引言 在 HagiCode 的开发过程中,我们遇到了一个很现实的问…...
B站成分检测器:3分钟快速识别评论区同好身份
B站成分检测器:3分钟快速识别评论区同好身份 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分油猴脚本,主要为原神玩家识别 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-comment-checker 还在为B站评论区难以分辨用户…...
新手最值得入的一款ai音乐工具
2026年,ai音乐爆发的一年。国内国外各种AI音乐工具层出不穷。想要尝试AI音乐的新手宝宝该怎么去选择呢?市面上大大小小的ai音乐创作软件我基本都尝试过。我觉得只有一款工具是最值得推荐的,也是我使用的最多的。那就是蘑兔AI,你们…...
【Windows】终止进程、杀掉进程、结束进程
使用资源监视器在任务管理器中点击"性能"选项卡点击"打开资源监视器"切换到"CPU"选项卡在"关联的句柄"搜索框中输入 ui_demo.exe找到对应的进程后,右键点击并选择"结束进程"...
MogFace人脸检测工具问题排查大全:从路径错误到权限问题的解决方案
MogFace人脸检测工具问题排查大全:从路径错误到权限问题的解决方案 1. 工具简介与常见问题概述 MogFace人脸检测工具是基于CVPR 2022发表的MogFace模型开发的本地高精度检测解决方案。它能够准确识别多尺度、多姿态以及部分遮挡的人脸,并自动标注检测框…...
【HALCON实战】set_window_param:解锁图形窗口高级定制与性能调优
1. 为什么你需要掌握set_window_param? 在机器视觉项目开发中,图形窗口就像工程师的眼睛。我见过太多同行把90%的精力花在算法优化上,却忽视了窗口显示这个"最后一公里"问题。直到某次在客户现场演示时,程序因为频繁刷新…...
