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

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"]

代码说明

  1. 调用数组的filter方法遍历每条航线,只保留符合条件的元素;
  2. 对每条航线用components(separatedBy: "-")拆分为机场代码数组;
  3. 将数组转换为Set,由于Set自动去重,若原数组长度大于Set的长度,说明存在重复的机场代码,返回true以保留该航线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:30:49