如何从 Swift 中的字符串中删除重复字符 [英] How to remove duplicate characters from a string in Swift
本文介绍了如何从 Swift 中的字符串中删除重复字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
ruby 有 string.squeeze 函数,但我似乎找不到 swift 的等价物.
ruby has the function string.squeeze, but I can't seem to find a swift equivalent.
比如我想转簿记员->bokepr
For example I want to turn bookkeeper -> bokepr
创建一组字符然后将字符从集合中拉回字符串是我唯一的选择吗?
Is my only option to create a set of the characters and then pull the characters from the set back to a string?
有没有更好的方法来做到这一点?
Is there a better way to do this?
推荐答案
编辑/更新: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"
这篇关于如何从 Swift 中的字符串中删除重复字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文