我有一张替换的Map
第一个月
我想用对应的值替换字符串中每个Map键的所有出现。
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"
字符串
我所做
val sb = new StringBuilder(str)
for(repl <- replacements.keySet) yield {
sb.replaceAllLiterally(repl, replacement.get(repl))
}
型
但我更喜欢像map
或fold
这样的函数,其中我应用于字符串的函数返回另一个字符串,而不需要在循环中修改的可变变量。
3条答案
按热度按时间ttcibm8c1#
一个选项:在
Map
上使用foldLeft
,并将str
作为初始参数:字符串
nom7f22z2#
我不太喜欢这个,但它应该工作:
字符串
mtb9vblg3#
你可以用正则表达式来实现,但是要注意顺序。
字符串