我想知道String函数replacementOccurrences(of:String,with:String)是否有错误:
let s = "Hello World!"
let cleaned : String = s.replacingOccurrences(of: " ", with: " ")
print("cleaned = '\(cleaned)'")
我想将多个空格替换为一个
" " to " "
但字符串保持不变。我已经在obj-c中完成了数百次,所以这是Swift中的一个错误吗?
答案 0 :(得分:3)
不一个错误。您将用一个空格替换每个出现的2个空格。该方法不能递归工作,因此5个空格减少到3个。
您可以使用正则表达式,它用一个空格替换所有出现的一个或多个空格:
let s = "Hello World!"
let cleaned = s.replacingOccurrences(of: " +", with: " ", options: .regularExpression)
print("cleaned = '\(cleaned)'")
答案 1 :(得分:1)
如Vadian所述,这不是一个错误,这就是你的代码应该如何运作。
这是另一种获得相同结果的方法:
let cleaned = s.components(separatedBy: .whitespaces).filter({ !$0.isEmpty }).joined(separator: " ")
首先用空格分隔字符串,然后使用filter
排除所有空格,然后加入用空格分隔它们的字符串。