我希望使用 java8 .stream() 或 .foreach() 替换下面的代码。但是我在这样做时遇到了麻烦。
它可能很容易,但我正在寻找思考斗争的实用方法:)
我可以迭代,没问题,但是返回修改后的字符串是由于可变性问题导致的问题。
有人有想法么 ?
List<String> toRemove = Arrays.asList("1", "2", "3");
String text = "Hello 1 2 3";
for(String item : toRemove){
text = text.replaceAll(item,EMPTY);
}
谢谢 !
原文由 SteveG 发布,翻译遵循 CC BY-SA 4.0 许可协议
哇,你们喜欢用艰难的方式做事。这就是 filter() 和 collect() 的用途。
输出(与原始代码一样)
当然,如果您的搜索字符串长于一个字符,则前一种方法效果更好。但是,如果您有一个标记化的字符串,则拆分和连接会更容易。
产出