在使用5-10个替代品的情况下,有必要使用stringbuilder。

String someData = "......";
someData = someData.replaceAll("(?s)<tag_one>.*?</tag_one>", "");
someData = someData.replaceAll("(?s)<tag_two>.*?</tag_two>", "");
someData = someData.replaceAll("(?s)<tag_three>.*?</tag_three>", "");
someData = someData.replaceAll("(?s)<tag_four>.*?</tag_four>", "");
someData = someData.replaceAll("(?s)<tag_five>.*?</tag_five>", "");
someData = someData.replaceAll("<tag_five/>", "");
someData = someData.replaceAll("\\s+", "");

如果在这里使用stringBuilder,会有所不同。

最佳答案

在这里,使用StringBuilder不会有什么用。

更好的改进是使用单个正则表达式:

someData = someData.replaceAll("(?s)<tag_(one|two|three|four|five)>.*?</tag_\\1>", "");

在这里,\\1(one|two|etc)组中捕获的相同。

关于java - Java String.replace()或StringBuilder.replace(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47939994/

10-09 22:44