news 2026/9/3 8:14:14

【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/9/2 21:02:52

基于MiDaS的3D感知:部署

基于MiDaS的3D感知:部署 1. 引言:AI 单目深度估计 —— 让2D图像“看见”三维世界 在计算机视觉领域,从单张2D图像中恢复3D空间结构一直是极具挑战性的任务。传统方法依赖多视角几何或激光雷达等硬件设备,成本高且部署复杂。近年…

作者头像 李华
网站建设 2026/9/2 14:05:41

如何用Rembg处理半透明物体?实战技巧解析

如何用Rembg处理半透明物体?实战技巧解析 1. 引言:智能万能抠图 - Rembg 在图像处理领域,精准去除背景一直是核心需求之一,尤其是在电商、广告设计和AI内容生成等场景中。传统手动抠图耗时费力,而基于深度学习的自动…

作者头像 李华
网站建设 2026/9/2 21:55:15

无需复杂配置!用Ollama快速运行Qwen2.5-7B大模型

无需复杂配置!用Ollama快速运行Qwen2.5-7B大模型 在AI大模型技术迅猛发展的今天,越来越多的开发者和爱好者希望亲自体验本地部署与推理的乐趣。然而,传统的大模型部署方式往往需要复杂的环境配置、依赖管理以及对底层框架的深入理解&#xf…

作者头像 李华
网站建设 2026/9/2 21:54:43

从零开始微调Qwen3-VL模型|借助Qwen3-VL-WEBUI极速落地

从零开始微调Qwen3-VL模型|借助Qwen3-VL-WEBUI极速落地 [toc] 引言:为什么需要微调多模态大模型? 随着视觉-语言任务的复杂化,通用预训练模型在特定场景下的表现逐渐显现出局限性。例如,在工业质检、医疗影像分析或教…

作者头像 李华
网站建设 2026/9/3 0:19:15

Rembg抠图效果提升:前处理与后处理的结合

Rembg抠图效果提升:前处理与后处理的结合 1. 智能万能抠图 - Rembg 在图像处理领域,自动去背景(抠图)一直是高频且关键的需求,广泛应用于电商展示、设计合成、AI换装等场景。传统手动抠图耗时费力,而基于…

作者头像 李华
网站建设 2026/9/3 1:18:40

图文生成与空间推理进阶|基于Qwen3-VL-WEBUI的完整实践路径

图文生成与空间推理进阶|基于Qwen3-VL-WEBUI的完整实践路径 随着多模态大模型在视觉理解、图文生成和空间推理能力上的持续突破,阿里推出的 Qwen3-VL 系列模型已成为当前最具代表性的视觉-语言系统之一。特别是其最新版本 Qwen3-VL-4B-Instruct&#xf…

作者头像 李华