这是我尝试的:
def doStringReplcements(originalStr: String, replacementsMap: Map[String,String]): String = {
var newStr = originalStr
replacementsMap.foreach { pair =>
newStr = newStr.replaceAllLiterally(pair._1, pair._2)
}
newStr
}
但是函数式编程风格建议避免使用var,那么如何只用val来做到这一点呢?
考虑foldLeft
在Map上使用该功能。
例如
replacementsMap.foldLeft(originalStr){ case (accumulator, (target, replacement)) =>
accumulator.replaceAllLiterally(target, replacement)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句