我目前正在尝试使用Swift 3替换字符串中的特定字符。
var str = "Hello"
var replace = str.replacingOccurrences(of: "Hello", with: "_____")
print(replace)
这将打印:_____,但是当str更改并且由不同数量的字符或几个单词组成时,我的问题发生了,例如:
var str = "Hello World"
现在,我希望替换变量在str
更改时自动更新。除“空格”外的所有字符均应替换为_,然后再打印_____ _____,该字符应代表“ Hello World”。
是否想到了如何实现?
答案 0 :(得分:1)
如果要替换所有单词字符,可以将regularExpressions
输入用于以前使用的同一函数的options
参数,只需将特定的String输入更改为{{1} },它将匹配所有单词字符。
\\w
请记住,let str = "Hello World"
let replace = str.replacingOccurrences(of: "\\w", with: "_", options: .regularExpression) // "_____ _____"
也不会替换其他特殊字符,因此对于输入\\w
,它将产生"Hello World!"
。如果要替换除空格以外的所有字符,请使用"_____ _____!"
。
\\S
答案 1 :(得分:0)
除“空格”外的所有字符均应替换为_
有几种选择。您可以map()
替换每个字符,并将结果组合为字符串:
let s = "Swift is great"
let t = String(s.map { $0 == " " ? $0 : "_" })
print(t) // _____ __ _____
或者使用正则表达式,\S
是“非空白字符”的模式:
let t = s.replacingOccurrences(of: "\\S", with: "_", options: .regularExpression)
print(t) // _____ __ _____