如何在Scala中实现string.replaceAll链

时间:2016-11-09 23:12:07

标签: scala

我有一个字符串,我需要转换为“规范”视图,为此,我需要在字符串上多次调用replaceAll()。我让它下一步工作:

val text = "Java Scala Fother Python JS C# Child"
val replacePatterns = List("Java", "Scala", "Python", "JS", "C#")
var replaced = text
for (pattern <- replacePatterns) {
  replaced = replaced.replaceAll(pattern, "")
}

这个代码是我想要的替换=“Fother Child”的结果,但它看起来非常迫切,我想要消除累加器“替换”。 Scala有没有办法在一行中处理它而没有var?

感谢。

1 个答案:

答案 0 :(得分:4)

在模式列表和要处理的文本上使用折叠作为起点:

replacePatterns.foldLeft(text){case (res, pattern) => res.replaceAll(pattern, "")}