我有一个字符串数组,是机场代码,就像这样
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 = [ "JFK-ATL-CDG-JFK",
"LAX-DFW-FRA-CDG-AMS-FRA-DFW",
"PEK-SEA-MCO-YYZ-SEA"]
数组中的第二个和第三个元素没有重复的代码,因此不会在新数组中返回这些代码,请注意,机场代码由“-”分隔。Swift是否提供了删除“-”并将其添加回去的方法?最简单的方法是什么?谢谢。
2条答案
按热度按时间vnzz0bqm1#
你可以尝试一些简单的方法,对我很有效:
或者,更简洁地说:
bfhwhh0e2#
请注意,机场代码以“-”分隔,Swift是否提供了删除“-”并将其添加回来的方法?
这并不是破折号特有的(那会很傻,因为如果我想拆分逗号并将它们加回去呢?),但是是的,下面是我的建模方法:
我建议你获取输入数据,在程序中尽早将其解析为一些模型对象,比如我在这里展示的
Route
,这种类型为放置hasRepetitions
属性提供了一个非常自然的位置,然后你可以根据需要使用它来过滤输入。如果你需要最后的输出再次变成字符串,那么就把你的模型对象序列化回string,但是只在最后一秒才这样做,这样你所有的路由处理代码就可以用做有用事情的
Route
对象来工作,而不是通用的String
。