在Swift中拆分包含多个字符的字符串

Ric*_*ett 4 arrays string split separator swift

我已经阅读了其他主题,但他们似乎只处理单个字符分隔符,我认为Playground正在崩溃,因为我使用了多个char.

"[0, 1, 2, 1]".characters
              .split(isSeparator: {[",", "[", "]"].contains($0)}))
              .map(String.init) //["0", " 1", " 2", " 1"]
Run Code Online (Sandbox Code Playgroud)

有点工作,但我想用","而不是",".显然我可以使用[",","","[","]"]并抛出空格但是什么时候我只想删除字符串模式?

简而言之:如何将Swift字符串与其他较小的字符串分开?

aya*_*aio 6

斯威夫特3

let s = "[0, 1, 2, 1]"
let splitted = s.characters.split { [",", "[", "]"].contains(String($0)) }
let trimmed = splitted.map { String($0).trimmingCharacters(in: .whitespaces) }
Run Code Online (Sandbox Code Playgroud)

斯威夫特2

let s = "[0, 1, 2, 1]"
let charset = NSCharacterSet.whitespaceCharacterSet()
let splitted = s.characters.split(isSeparator: {[",", "[", "]"].contains($0)})
let trimmed = splitted.map { String($0).stringByTrimmingCharactersInSet(charset) }
Run Code Online (Sandbox Code Playgroud)

结果是一个没有额外空格的字符串数组:

["0","1","2","1"]