当前位置: 首页 > 面试题库 >

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

蒯华彩
2023-03-14
问题内容

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

例如我想转簿记员-> bokepr

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

有一个更好的方法吗?


问题答案:

编辑/更新: Swift 4.2或更高版本

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

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"


 类似资料:
  • 我需要对一个字符串进行预处理,并从中移除一些单词。我要找的东西是这样的:- 我是新的编程,所以请考虑。

  • 我被要求编写一个程序,从字符串中删除重复的字母**注意:大小写字母被认为是重复的。我编写了代码,它适用于所有没有空格键的输入,当一个字符串带有空格时,它会显示错误。我只需要使用循环和数组,没有额外的函数或哈希,这是我的代码,几乎可以工作:

  • 问题内容: 如何从字符串中去除特殊字符的答案?不管用。 这是我得到的,它给我一个错误 错误提示 _Element(aka字符)无法转换为预期的参数类型’String’。 问题答案: 像这样: 测试方法如下:

  • 问题内容: 我有像这样的字符串“ aaaabbbccccaaddddcfggghhhh”,我想删除重复的字符,得到像这样的字符串“ abcadcfgh”。 一个简单的实现是: 使用正则表达式是否可能有更好的实现? 问题答案: 你可以这样做: 正则表达式使用反向引用和捕获组。 正常的正则表达式是,但是您必须在Java中使用另一个反斜杠来使反斜杠转义。 如果您想要重复的字符数: 演示版

  • 我需要编写一个静态方法,该方法将作为参数,并返回一个新的。例如,如果我将“Maaaakkee”作为输入,它将返回“make”。我已经尝试了下面的代码,但它似乎没有显示最后一个字符。下面是我的代码:

  • 问题内容: 我想使用不带可选扩展名的String值。我使用以下代码从firebase解析此数据: 解析此数据后,我尝试打印例如latstring并得到以下结果: 值是可选的(52.523553) 我的CityObject如下所示: 问题答案: 就像@GioR所说的那样,该值是Optional(52.523553),因为latstring的类型是隐式的:String?。这是由于let lat = d