Scala用键/值列表替换String

时间:2016-04-24 17:07:02

标签: scala

我有不同的字符串

" 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

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:6)

您可以使用foldLeft:

来完成
mapKeyValues
  .foldLeft (bodyString) {case (acc,(key,value))=>acc.replaceAll(key, value)}