【问题标题】:Scala replace an String with a List of Key/ValuesScala 用键/值列表替换字符串
【发布时间】:2016-04-25 01:51:47
【问题描述】:

我有不同的这样的字符串

" Hello *|USERNAME|*,

  to activate your account please click here *|ACTIVATION_LINK|*
"

另一个例子

" Hello,

  to reset your password please click here *|RESET_URL|*
"

对于第一个字符串,我会有一个这样的键值列表

((USERNAME, Nick),(ACTIVATION_URL, http://whateverhost/activation_url))

第二次

((RESET_URL, http://whateverhost/reset_url))

我想用键/值列表替换字符串,列表可以有可变长度并且字符串中键的出现可能是多个

我试过这样的

mapKeyValues.map { x => bodyString.replaceAll(x._1, x._2) }

但问题是我得到了一个新列表,其中每一行都替换了一行键/值

有没有办法做到这一点?

【问题讨论】:

标签: scala


【解决方案1】:

您可以使用 foldLeft 来做到这一点:

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

【讨论】:

    猜你喜欢
    • 2021-01-02
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 2022-01-15
    • 2013-05-01
    • 2021-12-30
    • 2021-07-09
    • 1970-01-01
    相关资源
    最近更新 更多