Swift - 替换字符串中的字符

18

我有一个变量,其中包含一个符号或字符,我不知道如何用英语表达 "\" ... 如何替换我的变量中的所有 \ 为空格?

var content = theContent["content"] as String
self.contentLabel.text = content.stringByReplacingOccurrencesOfString(<#target: String#>, withString: <#String#>, options: <#NSStringCompareOptions#>, range: <#Range<String.Index>?#>)

如何填补这些空白或者当我使用content.string时我的语法是否有误...然后在#target中使用同样的字符串?有没有人学Swift学得很快?:D

2个回答

27

请使用以下内容

self.contentLabel.text = content.stringByReplacingOccurrencesOfString("\\", withString: " ", options: NSStringCompareOptions.LiteralSearch, range: nil)

14

如果你想纯Swift编写,可以尝试:

self.contentLabel.text = Array(myString).reduce("") { $1 == "\\" ? $0 : "\($0)\($1)" }

这是一种简写的方式:

Array(myString).reduce("", combine: { (inputString, character) -> String in
    if character == "\\" {
        return inputString
    } else {
        return "\(inputString)\(character)"
    }
})

这会将 myString 转换为一个由 Character 组成的 Array,然后使用 reduce 函数将它们重新拼接成一个 String,但在反斜杠的位置上替换为空字符串。


你说的“纯Swift”是什么意思?这看起来很复杂。你能解释一下这个例子中发生了什么吗? - Aggressor
3
我指的是“纯Swift”,也就是不使用任何基础类(比如NSString)- 为了更清晰,我更新了我的答案。 - Ashley Mills

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接