且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间: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"