我有一张替换地图
val replacements = Map( "aaa" -> "d", "bbb" -> "x", "ccc" -> "mx")
我想用相应的值替换字符串中每个映射键的出现次数.
val str = "This aaa is very bbb and I would love to cccc"
val result = cleanString(str, replacements)
result = "This d is very x and I would love to mx"
Run Code Online (Sandbox Code Playgroud)
我已经做好了
val sb = new StringBuilder(str)
for(repl <- replacements.keySet) yield {
sb.replaceAllLiterally(repl, replacement.get(repl))
}
Run Code Online (Sandbox Code Playgroud)
但是我想要一些功能更像是map或者fold我应用于字符串的函数返回另一个字符串而不需要在循环内修改的可变变量.
Psi*_*dom 19
一个选择:使用foldLeft上Map与str作为初始参数:
replacements.foldLeft(str)((a, b) => a.replaceAllLiterally(b._1, b._2))
// res8: String = This d is very x and I would love to mxc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3430 次 |
| 最近记录: |