news 2026/4/15 21:51:59

【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/15 12:21:52

Rembg抠图应用实例:产品包装设计的优化方案

Rembg抠图应用实例:产品包装设计的优化方案 1. 引言:智能万能抠图在包装设计中的价值 1.1 行业痛点与技术需求 在现代产品包装设计流程中,设计师经常面临大量图像处理任务——尤其是将商品主体从原始背景中精准分离。传统方式依赖人工使用…

作者头像 李华
网站建设 2026/3/27 10:01:25

轻松实现Qwen2.5-7B高吞吐推理|vLLM加速与负载均衡部署指南

轻松实现Qwen2.5-7B高吞吐推理|vLLM加速与负载均衡部署指南 随着大语言模型在实际业务场景中的广泛应用,如何高效部署并提升推理吞吐量成为工程落地的关键挑战。Qwen2.5-7B作为通义千问团队推出的高性能开源语言模型,在指令遵循、长文本生成…

作者头像 李华
网站建设 2026/3/19 7:29:12

详解Qwen2.5-7B模型部署:利用vLLM与Gradio提升开发效率

详解Qwen2.5-7B模型部署:利用vLLM与Gradio提升开发效率 一、引言:为何选择Qwen2.5-7B vLLM Gradio技术栈 随着大语言模型(LLM)在自然语言理解、代码生成和多语言支持等方面的持续进化,如何高效地将这些强大的模型集…

作者头像 李华
网站建设 2026/4/3 4:17:15

利用Qwen2.5-7B实现多场景指令微调应用

利用Qwen2.5-7B实现多场景指令微调应用 一、引言:为何选择Qwen2.5-7B进行指令微调? 在当前大语言模型(LLM)快速发展的背景下,如何将通用预训练模型高效适配到特定业务场景,成为企业落地AI能力的关键挑战。…

作者头像 李华
网站建设 2026/4/15 16:28:24

Qwen2.5-7B大模型技术揭秘|编程、数学与多语言能力全面提升

Qwen2.5-7B大模型技术揭秘|编程、数学与多语言能力全面提升 一、引言:Qwen2.5-7B的技术演进背景 随着大语言模型在自然语言理解、代码生成和多模态任务中的广泛应用,阿里云推出的 Qwen2.5 系列再次将开源模型的能力推向新高度。其中&#xff…

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

ResNet18环境配置终结者:预装镜像,省去3天折腾时间

ResNet18环境配置终结者:预装镜像,省去3天折腾时间 引言:为什么你需要这个预装镜像 如果你正在学习深度学习或计算机视觉课程,ResNet18这个经典模型一定不会陌生。作为图像分类任务的入门模型,它结构简单但效果出色&…

作者头像 李华