You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 4+如何分割字符串行且不忽略空行?

在Swift 4+中分割字符串并保留空行的解决方案

这个问题我之前也踩过坑!Swift 里的split方法默认会忽略空的子序列,这就是为什么你用split只能得到3个元素的原因。下面给你两种简单有效的方法,都能得到包含空字符串的4个元素结果:

方法一:使用components(separatedBy:)(Foundation框架)

这个方法是Foundation提供的,它会严格按照分隔符分割字符串,自动保留空行对应的空字符串,用法很直接:

let originalStr = "1\n2\n\n3"
let lines = originalStr.components(separatedBy: "\n")
// lines 的值为 ["1", "2", "", "3"],完美符合你的需求

如果需要兼容不同的换行格式(比如Windows的\r\n),可以换成CharacterSet.newlines,适配性更强:

let lines = originalStr.components(separatedBy: .newlines)

方法二:修改split的参数(Swift标准库)

如果你更倾向于用Swift标准库的split方法,只需要把默认的omittingEmptySubsequences参数设为false,就能关闭空序列的忽略逻辑:

let originalStr = "1\n2\n\n3"
// split 返回的是 Substring 数组,若需要 String 类型可以转一下
let lines = originalStr.split(separator: "\n", omittingEmptySubsequences: false).map(String.init)
// lines 的值同样是 ["1", "2", "", "3"]

两种方法都能解决你的问题,选哪个看你是否依赖Foundation框架啦~

内容的提问来源于stack exchange,提问作者Ondrej Rafaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:18:21