QString中文字符串中指定字符的查找

中文字符串指定字符查找

  • 场景
  • 示例
    • 运行环境
    • 示例代码
    • 代码讲解
    • 难点重点

场景

在一个QString类型的中文字符串中查找一个指定的中文字符串,找到该指定的中文字符串后,返回其找到的下标位置,判断下标位置向前一位的字符是否为指定的字符。

示例

运行环境

Windows10下qt5.12.9.

示例代码

主要实现部分的代码:

QString strCreateionMsg = "你好,世家上的花朵、小雨、鸟儿";
QString str = "花朵";int nRet = strCreateionMsg .indexOf(str);QString strTemp = strCreateionMsg;if (nRet != -1 && strCreateionMsg.contains("、"))//找到了{// 中文字符串中查找指定下标的中文qDebug("---HAVE:", QString(strTemp.at(nRet - 1)) == "、","strTemp.at(nRet - 1)=", strTemp.at(nRet - 1),"QString(strTemp.at(nRet - 1)):",QString(strTemp.at(nRet - 1)));//前一位为顿号,则移除顿号加指定的字符串,否则移除指定的字符串加后面的顿号QString(strTemp.at(nRet - 1)) == "、"? strCreateionMsg = strTemp.remove(QString("、" + str)): strCreateionMsg = strTemp.remove(QString(str + "、"));}

代码讲解

上述实现的代码,主要是为了在指定的中文字符串中查找指定的中文字符串“花朵”,或者“小雨”,或者“鸟儿”,若是查找到指定的中文字符串则返回找到的下标位置nRet ,当给定的中文字符串中有顿号且能找到指定的字符串时,若找到的位置前一个字符为顿号,删除前一个位置上的顿号和指定的字符串,若前一个位置不为顿号,则删除指定的字符串和后面的顿号。
即:
找到花朵后,删除其花朵后面紧跟着的顿号,得到字符串:QString strCreateionMsg = “你好,世家上的小雨、鸟儿”;
若找到小雨,原始给定字符串删除小雨和小雨后紧跟着的顿号,得到字符串:
QString strCreateionMsg = “你好,世家上的花朵、鸟儿”;

难点重点

这里的重点是中文字符串中一个中文对应的下标不一定是向前了一位。上面的例子中找到指定的中文字符串后返回找到中文字符串时的位置,本以为判断前一位上的字符只需向前一位,但中文却不同,这里需要做一下转换,即strTemp.at(nRet - 1)获取到的字符转换为QString,再与中文字符串顿号相对比。故而有QString(strTemp.at(nRet - 1)) == “、”。
本文仅以记录。

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

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

相关文章

强强联手 SAP Ariba与苏宁易购共建中国企业智慧采购

2019年5月30日,南京讯— SAP Ariba(采购云)联合苏宁易购共同宣布达成战略合作关系,苏宁易购成为SAP Ariba Spot Buy(零星采购)业务在中国大陆地区的合作伙伴。双方将利用SAP与苏宁集团的全业态资源&#xf…

Lombok快速入门

Lombok快速入门 文章目录一、Lombok介绍:1.1 Lombok优点:1.2 lombok 依赖引入1.3 lombok 插件安装二、常用注解2.1 Getter and Setter2.2 ToString2.3 EqualsAndHashCode2.4 NoArgsConstructor2.5 AllArgsConstructor2.6 Slf4j2.7 Builder、2.8 Data2.92…

图片夹_各种变调夹的优缺点、原理和使用方法

变调夹(capo)是吉他弹奏中很重要的一部分,演奏者可以用它来很方便的调整吉他的音调,在民谣弹唱中,如果吉他为标准调弦(EADGBE),当弹唱比较常见的D调的歌曲如《成都》时,只需用变调夹夹在二品,演奏者就可以用…

double类型的变量与0的对比

double类型变量与0比较概述实现double类型概述 日常总是会遇到double类型变量与0之间的比较。非严格情况下直接与0比较了,但实际上这是一种错误的写法。double为双精度类型,其一般保留15为小数。而Flaot单精度类型一般保留6为小数。故而不能直接与0进行…

朋友,你实现荔枝自由了吗? | Alfred数据室

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者: AlfredWu转自:Alfred数据室Alfred已经有四年没有在广东生…

tomcat9控制台中文乱码

1、找到${CATALINA_HOME}/conf/logging.properties2、找到java.util.logging.ConsoleHandler.encoding UTF-83、 修改为java.util.logging.ConsoleHandler.encoding GBK 3、重启tomcat。

一个事物两个方面的对比举例_作比较的句子大全简短-对比的句子什么比什么重要-什么和什么做比较的句子...

对比是修辞方法,就是把两种不同事物或者同一事物的两个不同方面放在一起相互比较的一种辞格。 对比的句子你能举出两个这样的例子吗?这样写有什幺好 鳕鱼一次产卵竟达千万粒,真正能变成幼鱼的卵可能还不到1%。 列数字:准确,有科学根据 打比方:天上的星星像一颗颗宝石。 作…

idea控制台输出乱码

2分钟搭建企业轻量级负载均衡服务器 文章目录1. 修改配置文件2. tomcat启动参数:3. 统一编码格式1. 修改配置文件 打开IntelliJ IDEA本地安装目录中bin文件夹下的idea.exe.vmoptions和idea64.exe.vmoptions这两个文件 分别在这两个文件内容的末尾添加:…

数据可视化图表,你选对了吗?

戳蓝字“CSDN云计算”关注我们哦!Photo by Jason Coudriet on Unsplash文 | 邻川来源 | 阿里巴巴中间件程序员懂画图,一宝变三宝。继上期「阿里程序员小技巧」中,阿里巴巴技术专家三画分享了他关于《如何画好架构图》的经验,本期&…

使用IDEA 1分钟搭建运行SpringMVC项目

使用IDEA 1分钟搭建运行SpringMVC项目 文章目录一、项目搭建1.1. 新建项目1.2. 选择maven项目构建1.3. 设置组织名和模块名称1.4 . 选择本地maven仓库1.5 . 项目名和存放的位置1.6 . 开启自动下载依赖1.7. 搭建项目完成!!!二、项目运行2.1. 显…

ARM 发布新一代 CPU 和 GPU,实现 20% 性能提升!

戳蓝字“CSDN云计算”关注我们哦!整理 | 郭芮出品 | CSDN(ID:CSDNnews)作为全球知名的芯片设计企业,ARM 踩着一年一度即将开幕的台北电脑展(Computex 2019)热潮推出了新一代产品。据外媒 Ventur…

Git仓库初始化_企业级开发原则

Git仓库初始化_企业级开发原则 文章目录1. 在远程github创建仓库2. 在本地创建README.md测试WIKI文件3. 创建.gitignore文件4. 初始化git仓库5. 工作区变更文件添加至暂存区6. 文件提交至本地仓库7. 连接远程仓库8. 将本地仓库变更文件推送至远程9. 开发原则分支开发&#xff0…

python student类_9.Python类和对象

9.1 类(class)面向对象最重要的概念就是类(Class)和实例(Instance),类是抽象的模板以Student类为例,在Python中,定义类是通过class关键字class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着…

Unix风雨五十年:老兵远去,新秀崛起

戳蓝字“CSDN云计算”关注我们哦!文 | 姜洪军Unix?这是多老的一个传说啊!年轻一代的很多人似乎都没听说过。不过,微软的Windows NT、开源的Linux、谷歌的安卓、苹果的iOS,大家不陌生吧?其实这些都带着Unix的基因,我们…

Mybatisplus代码生成 之SpringBoot适配MYSQL和ORACLE

Mybatisplus代码生成 之SpringBoot适配MYSQL和ORACLE 文章目录前期准备:看图操作,一路下一步1. 导入相关依赖2. 新建代码生成类MysqlGenerator2.1. MYSQL 代码生成部分2.2. ORACLE代码生成部分3. 创建全局配置文件4. 启动类加MapperScan注解5. 在control…

360浏览器网页走丢了_超酷!Win10 正式版全新 UI 界面,全球第二大浏览器上线...

5月10日消息,微软今年首个 Windows 10 正式版将捆绑并换上全新的 Edge 浏览器,目前微软已向预览通道用户推送了 KB4559309 独立更新补丁,该补丁更新后将自动替换旧版 Edge 浏览器。撰文|XL科技说此前微软曾确认今年首个 Windows 1…

MP 启动注入 SQL 原理分析

MP 启动注入 SQL 原理分析 文章目录一、MybatisPlus需要sql语句吗?解答:需要1.1. 问题:为什么MybatisPlus看不到sql语句?1.2. 分析:继承关系1.3. 假设:操作数据库一定有sql二、通过现象看本质2.1. 测试案例…

虚拟化精华问答 | 为什么云计算需要虚拟化?

虚拟化是一种资源管理技术, 是将计算机的各种物理资源, 如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破物理设备结构间的不可切割的障碍,使用户可以比原本的架构更好的方式来应用这些资源。这些资源的虚拟部分是不受现有资源的…

c++ raiseexception产生异常_Day17_异常,线程

《Java自学180天笔记》异常分类package demo3;/*java.lang.Throwable:类是Java语言中所有错误或异常的超类。 Exception:编译期异常,进行编译(写代码)java程序出现的问题 RuntimeException:运行期异常,java程序运行过程中出现的问题…

05_SpringCloud整合声明式HTTP客户端-Feign

SpringCloud整合声明式HTTP客户端-Feign 文章目录一、Feign介绍1. 什么是Feign?2. Feign组件:二、基于Feign实现微服务远程调用2.1. 引入feign依赖2.2. 启动类加EnableFeignClients注解2.3. 添加属性配置(暂无)2.4. 创建一个feign接口类2.5. 修改Ribbon调…