news 2026/4/27 18:17:36

【QString】分割函数split

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【QString】分割函数split

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

      • 分三种场景逐一分析
        • 1. 场景1:ptNum 中没有 "."(如 ptNum = "2")
        • 2. 场景2:ptNum 中有一个 "."(如 ptNum = "2.3")
        • 3. 场景3:ptNum 以 "." 结尾(如 ptNum = "2.")
      • 补充:如何控制空字符串的保留/过滤?
      • 总结表格

QStringList list = ptNum.split(“.”);
如果ptnum中有一个.返回的list.size为2,如果没有返回是1吗,如果ptnum="2."又是什么情况呢

要搞清楚QString::split(".")的结果,核心是理解它的默认行为规则split会按分隔符拆分字符串,默认保留空字符串结果(不自动过滤),且拆分后列表的长度 = 分隔符出现次数 + 1(特殊情况除外,但默认模式下基本遵循此规律)。

分三种场景逐一分析

假设你的代码中ptNumQString类型(结合上下文推测),三种情况的结果如下:

1. 场景1:ptNum 中没有 “.”(如 ptNum = “2”)
  • 分隔符 “.” 出现次数 = 0;
  • 拆分后列表长度 = 0 + 1 = 1;
  • list内容:["2"]
  • 结论:list.size() = 1(和你猜测的一致)。
2. 场景2:ptNum 中有一个 “.”(如 ptNum = “2.3”)
  • 分隔符 “.” 出现次数 = 1;
  • 拆分后列表长度 = 1 + 1 = 2;
  • list内容:["2", "3"]
  • 结论:list.size() = 2(和你描述的一致)。
3. 场景3:ptNum 以 “.” 结尾(如 ptNum = “2.”)
  • 分隔符 “.” 出现次数 = 1;
  • 拆分后会保留末尾的空字符串(默认模式);
  • list内容:["2", ""](第一个元素是 “.” 前的非空字符串,第二个元素是 “.” 后的空字符串);
  • 结论:list.size() = 2(关键!不是 1,因为默认不过滤空结果)。

补充:如何控制空字符串的保留/过滤?

QString::split有一个重载参数QString::SplitBehavior,可以自定义拆分规则:

// 1. 默认模式(保留空字符串,你的代码用的是这种)QStringList list1=ptNum.split(".");// 等价于:split(".", QString::KeepEmptyParts)// 2. 过滤所有空字符串(包括开头、中间、结尾)QStringList list2=ptNum.split(".",QString::SkipEmptyParts);// 举例:ptNum = "2." 时list1 →["2",""]→ size=2list2 →["2"]→ size=1

总结表格

ptNum 值split(“.”) 结果(默认)list.size()split(“.”, SkipEmptyParts) 结果
“2”[“2”]1[“2”]
“2.3”[“2”, “3”]2[“2”, “3”]
“2.”[“2”, “”]2[“2”]
“.3”[“”, “3”]2[“3”]
“2…3”[“2”, “”, “3”]3[“2”, “3”]
“”(空串)[“”]1[](空列表,size=0)

核心记住:默认情况下,split 不会丢弃任何拆分结果(包括空字符串),列表长度 = 分隔符数量 + 1;如果需要过滤空值,必须显式传入QString::SkipEmptyParts参数。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 16:36:57

光伏逆变器的“精准之心”电流传感器如何助力每一缕阳光高效发电

在“双碳”战略背景下,我国光伏产业正以惊人速度发展。据国家能源局数据,2025年上半年全国可再生能源新增装机突破2.68亿千瓦,其中太阳能发电占比超79%。这一成就的背后,离不开逆变器这一核心设备的技术支撑。本文将聚焦逆变器中的…

作者头像 李华
网站建设 2026/4/21 8:40:15

儿童疫苗照怎么压缩到300kb?宝宝防疫本照片压缩全解析

给宝宝办理疫苗本、准备入学健康凭证时,不少家长都会卡在照片环节:要么照片太大超过300kb无法上传,要么压缩后模糊看不清,连疫苗记录都没法清晰呈现。儿童疫苗照作为宝宝防疫本和入学健康凭证的关键材料,有明确规格要求…

作者头像 李华
网站建设 2026/4/23 17:42:24

智能抠图Rembg实战:透明Logo制作的详细教程

智能抠图Rembg实战:透明Logo制作的详细教程 1. 引言 1.1 业务场景描述 在品牌设计、UI/UX开发和数字内容创作中,透明背景的Logo图像是不可或缺的基础素材。传统手动抠图依赖Photoshop等专业工具,耗时耗力且对操作者技能要求高。随着AI技术…

作者头像 李华
网站建设 2026/4/23 4:34:57

模型部署实战:Rembg抠图服务搭建指南

模型部署实战:Rembg抠图服务搭建指南 1. 引言 1.1 智能万能抠图 - Rembg 在图像处理与内容创作领域,精准、高效的背景去除技术一直是核心需求之一。无论是电商商品图精修、社交媒体素材制作,还是AI生成内容(AIGC)中…

作者头像 李华
网站建设 2026/4/18 1:26:34

Spring Boot整合Nacos:从入门到精通

引言 在微服务架构中,服务注册与发现、配置管理是两个核心组件。Nacos作为阿里巴巴开源的一站式服务治理平台,提供了服务发现、配置管理和动态DNS服务等功能。本文将详细介绍如何在Spring Boot项目中整合Nacos,实现服务注册与发现以及配置中…

作者头像 李华
网站建设 2026/4/18 14:54:24

2026全网最全网络安全学习路线!整理了一个月!

正文: 禁止废话,先看学习路线图; 在这个圈子技术门类中,工作岗位主要有以下三个方向: 安全研发安全研究:二进制方向安全研究:网络渗透方向 下面逐一说明一下。 第一个方向:安全研…

作者头像 李华