ios - 如何快速从字符串中删除字符

标签 ios string swift

我正在寻找一种从 shuffledWord1 中删除 tilesColored 字符串“ment”中的 4 个字符的简单方法。

var word1: String = "employment"
var shuffledWord1: String = "melpyoemtn"

var tilesColored: String = "ment"
var characters = Array(tilesColored) // gives ["m","e","n","t"]

let newWord1 = word1.StringByReplacingOccurencesOfString("\(characters[0])", withString:"") // gives "elpyoetn"

stringByReplacingOccurencesOfString 只允许检查 1 个字符并删除两个 m,那么我如何检查所有 4 个字符并只删除每个字符的一个实例以返回“melpyo”?

在此先感谢您提供的任何帮助

最佳答案

Swift 3+ 版本比之前的最佳答案具有更好的性能。 (因为我们没有将子字符串分成数组,所有子字符串都需要单独分配。)

这里仅适用于 unicode 标量级别。您可以将其直接粘贴到 playground 中。

import Foundation

extension String {

    func removeCharacters(from forbiddenChars: CharacterSet) -> String {
        let passed = self.unicodeScalars.filter { !forbiddenChars.contains($0) }
        return String(String.UnicodeScalarView(passed))
    }

    func removeCharacters(from: String) -> String {
        return removeCharacters(from: CharacterSet(charactersIn: from))
    }
}

let str = "n1o d2i3g4i5t6s!!!789"

let t1 = str.removeCharacters(from: CharacterSet.decimalDigits.inverted)
print(t1) // will print: 123456789

let t2 = str.removeCharacters(from: "0123456789")
print(t2) // will print: no digits!!!

关于ios - 如何快速从字符串中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32339717/

相关文章:

ios - 选择时无法更改tableviewcell的颜色

ios - 如何使用 Facebook SDK 3.1 避免 "App is allready authorized"

python - 从字符串中提取值

c - 将 strcpy() 与结构数组(及其元素)一起使用不起作用

ios - 在 iOS 项目上设置 Google Analytics 时出现 "guard body may not fall through"错误(在 Swift 中)

ios - AsyncDisplayKit:适合的大小不适用于短文本

ios - 执行选择器不会取消第二次

Excel工作表公式中的字符串操作

ios - 如何在 swift ios 中显示几页文本

swift - 如何在 swift 中使用 contains in dict