我有不同的字符串
" Hello *|USERNAME|*,
to activate your account please click here *|ACTIVATION_LINK|*
"
另一个例子
" Hello,
to reset your password please click here *|RESET_URL|*
"
对于第一个String我会有一个像这样的键值列表
((USERNAME, Nick),(ACTIVATION_URL, http://whateverhost/activation_url))
代表第二个
((RESET_URL, http://whateverhost/reset_url))
我想用Key / Values列表替换字符串,List可以有一个可变长度,字符串中键的出现可能是多个
我试过这样的事情
mapKeyValues.map { x => bodyString.replaceAll(x._1, x._2) }
但问题是我得到一个新的List,其中每一行都替换了一行Key / Values
有办法做到这一点吗?
答案 0 :(得分:6)
您可以使用foldLeft:
来完成mapKeyValues
.foldLeft (bodyString) {case (acc,(key,value))=>acc.replaceAll(key, value)}