如何从 Swift 中的字符串中删除重复字符 [英] How to remove duplicate characters from a string in Swift

查看:44
本文介绍了如何从 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆