"d", "bbb" -> "x", "ccc" -> "mx") 我想用相应的值替换字符串中每个映射键的所有出现。-6ren">
gpt4 book ai didi

string - 使用替换映射替换字符串上的多个单词

转载 作者:行者123 更新时间:2023-12-04 16:25:35 25 4
gpt4 key购买 nike

我有替换 map
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"

我已经做好了
val sb = new StringBuilder(str)
for(repl <- replacements.keySet) yield {
sb.replaceAllLiterally(repl, replacement.get(repl))
}

但是我想要更多的功能,例如 mapfold,其中我应用于字符串的函数将返回另一个字符串,而不需要在循环内修改可变变量。

最佳答案

一种选择:在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

关于string - 使用替换映射替换字符串上的多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com