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

Swift如何优雅提取数组元素 拆分空格并忽略DOMICILIO及后续内容

Swift 数组处理需求实现方案

核心需求梳理

  • 忽略数组中DOMICILIO元素及其之后的所有内容
  • 拆分所有前置元素中带空格的字符串为独立子元素
  • 最终输出一维字符串数组:["LOAIZA", "HERRERA", "JESUS"]

实现思路

  1. 先定位DOMICILIO在数组中的位置,提前截断数组
  2. 遍历截断后的所有元素,按空格拆分后合并为一维数组即可

代码实现

函数式写法(更简洁优雅,符合Swift编码风格)

let dataID = ["LOAIZA HERRERA", "JESUS", "DOMICILIO", "CALLE1", "CALLE2"]
// 定位DOMICILIO的位置,不存在则默认取数组末尾
let cutoffIndex = dataID.firstIndex(of: "DOMICILIO") ?? dataID.endIndex
// 截取前缀、拆分空格、扁平化得到结果
let result = dataID[..<cutoffIndex]
    .flatMap { $0.components(separatedBy: .whitespaces) }

print(result) // 输出:["LOAIZA", "HERRERA", "JESUS"]

注:如果需要同时拆分换行符(适配场景中提到的"LOAIZA\nHERRERA"格式内容),只需把separatedBy: .whitespaces替换为separatedBy: .whitespacesAndNewlines即可。

循环写法(兼容原有编写逻辑,可读性更高)

var dataID = ["LOAIZA HERRERA", "JESUS", "DOMICILIO", "CALLE1", "CALLE2"]
var result: [String] = []

for item in dataID {
    // 遇到DOMICILIO直接终止遍历,忽略后续内容
    if item == "DOMICILIO" {
        break
    }
    // 拆分当前元素的空格,追加到结果数组
    let separatedItems = item.components(separatedBy: .whitespaces)
    result.append(contentsOf: separatedItems)
}

print(result) // 输出:["LOAIZA", "HERRERA", "JESUS"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:27:01