如何在Swift中从字符串中删除重复的字符

红宝石有功能string.squeeze,但我似乎找不到快速等效。

例如我想转簿记员-> bokepr

我唯一的选择是创建一组字符,然后将字符从该组拉回到字符串中吗?

有一个更好的方法吗?

回答:

编辑/更新:

您可以使用一组来过滤重复的字符:

let str = "bookkeeper"

var set = Set<Character>()

let squeezed = str.filter{ set.insert($0).inserted }

print(squeezed) // "bokepr"


或作为扩展,RangeReplaceableCollection也将扩展String和Substrings:

extension RangeReplaceableCollection where Element: Hashable {

var squeezed: Self {

var set = Set<Element>()

return filter{ set.insert($0).inserted }

}

}


let str = "bookkeeper"

print(str.squeezed) // "bokepr"

print(str[...].squeezed) // "bokepr"

以上是 如何在Swift中从字符串中删除重复的字符 的全部内容, 来源链接: utcz.com/qa/416368.html

回到顶部