Swift实现筛选含重复机场代码的字符串数组及分隔符处理
Swift 实现机场航线重复代码筛选方案
一、字符串拆分与拼接的Swift原生方法
Swift提供了原生的字符串拆分和拼接方法:
- 拆分:使用
String的components(separatedBy:)方法,传入分隔符"-"即可将字符串拆分为机场代码数组。 - 拼接:使用数组的
joined(separator:)方法,传入"-"就能将机场代码数组重新拼接为带分隔符的字符串。
二、筛选含重复机场代码的航线最简实现
核心思路是:对每个航线字符串拆分后,利用Set的唯一性特性判断是否存在重复元素——如果拆分后的数组长度大于转换为Set后的元素数量,说明存在重复代码,保留该字符串。
完整代码示例
let list = [ "JFK-ATL-CDG-JFK", "HKG-MIA-NRT", "LAX-DFW-FRA-CDG-AMS-FRA-DFW", "PEK-SEA-MCO-YYZ-SEA", "MSP-DTW-BKK"] let updatedList = list.filter { route in let airports = route.components(separatedBy: "-") return airports.count > Set(airports).count } print(updatedList) // 输出结果:["JFK-ATL-CDG-JFK", "LAX-DFW-FRA-CDG-AMS-FRA-DFW", "PEK-SEA-MCO-YYZ-SEA"]
代码说明
- 调用数组的
filter方法遍历每条航线,只保留符合条件的元素; - 对每条航线用
components(separatedBy: "-")拆分为机场代码数组; - 将数组转换为
Set,由于Set自动去重,若原数组长度大于Set的长度,说明存在重复的机场代码,返回true以保留该航线。
内容的提问来源于stack exchange,提问作者nitpaxy
相关产品推荐
相关产品推荐

