更新时间:2023-01-12 21:42:02
编辑/更新:Swift 4.2 或更高版本
您可以使用集合来过滤重复的字符:
You can use a set to filter your duplicated characters:
let str = "bookkeeper"
var set = Set<Character>()
let squeezed = str.filter{ set.insert($0).inserted }
print(squeezed) // "bokepr"
或者作为 RangeReplaceableCollection
的扩展,它也将扩展字符串和子字符串:
Or as an extension on RangeReplaceableCollection
which will also extend String and Substrings as well:
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"