news 2026/6/10 22:16:48

【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/6/10 11:23:24

【QString】按照空格和Tab拆分

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、核心知识点二、按空格拆分(" ")1. 基础用法(跳过连续空格)2. 保留空项(默认行为&#xff0…

作者头像 李华
网站建设 2026/6/10 16:02:55

ResNet18零基础教程:云端GPU免配置,1小时1块快速体验物体识别

ResNet18零基础教程:云端GPU免配置,1小时1块快速体验物体识别 1. 为什么选择ResNet18做物体识别? ResNet18是深度学习领域最经典的图像识别模型之一,就像相机界的"傻瓜相机"——简单好用但效果不俗。它由微软研究院在…

作者头像 李华
网站建设 2026/6/10 14:56:26

AI 3D感知开发:MiDaS模型批量处理图像教程

AI 3D感知开发:MiDaS模型批量处理图像教程 1. 引言:AI 单目深度估计的现实意义 在计算机视觉领域,从单张2D图像中恢复3D空间结构一直是极具挑战性的任务。传统方法依赖多视角几何或激光雷达等硬件设备,成本高且部署复杂。近年来…

作者头像 李华
网站建设 2026/6/9 22:22:54

Qwen2.5-7B大模型离线部署|vLLM加速推理全流程

Qwen2.5-7B大模型离线部署|vLLM加速推理全流程 一、引言:为何选择vLLM进行Qwen2.5-7B的离线推理? 在当前大语言模型(LLM)广泛应用的背景下,如何高效地将高性能模型部署到生产环境中,成为工程落…

作者头像 李华
网站建设 2026/6/10 11:17:14

本地部署Qwen2.5-7B:Ollama一键运行大模型实战

本地部署Qwen2.5-7B:Ollama一键运行大模型实战 在AI技术飞速发展的今天,越来越多开发者和爱好者希望亲手体验大语言模型的强大能力。然而,传统的大模型部署方式往往需要复杂的环境配置、深度的框架理解以及高昂的硬件成本,这成为…

作者头像 李华
网站建设 2026/6/10 11:15:45

Qwen3-VL-WEBUI本地部署指南|一键启动视觉语言模型

Qwen3-VL-WEBUI本地部署指南|一键启动视觉语言模型 引言:为什么选择Qwen3-VL-WEBUI? 在多模态大模型快速演进的今天,视觉语言模型(VLM) 正从“看图说话”迈向“理解世界、执行任务”的新阶段。阿里云最新…

作者头像 李华