Swift如何优雅提取数组元素 拆分空格并忽略DOMICILIO及后续内容
Swift 数组处理需求实现方案
核心需求梳理
- 忽略数组中
DOMICILIO元素及其之后的所有内容 - 拆分所有前置元素中带空格的字符串为独立子元素
- 最终输出一维字符串数组:
["LOAIZA", "HERRERA", "JESUS"]
实现思路
- 先定位
DOMICILIO在数组中的位置,提前截断数组 - 遍历截断后的所有元素,按空格拆分后合并为一维数组即可
代码实现
函数式写法(更简洁优雅,符合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
相关产品推荐
相关产品推荐

