我有一个字符串,我需要转换为“规范”视图,为此,我需要在字符串上多次调用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?
感谢。
答案 0 :(得分:4)
在模式列表和要处理的文本上使用折叠作为起点:
replacePatterns.foldLeft(text){case (res, pattern) => res.replaceAll(pattern, "")}