我正在尝试将StringBuilder中的所有NewLines全部替换为空,并且我认为这会起作用...但事实并非如此。
Pattern replace = Pattern.compile("\\n");
Matcher matcher2 = replace.matcher(sb);
matcher2.replaceAll("");
我想念什么?
谢谢
最佳答案
Matcher.replaceAll("blah")
返回String
,因此与在StringBuilder上执行操作无关。但是,除了StringBuilder
之外,您没有使用toString()
的任何方法。 StringBuilder
是可变的,但是在您的情况下,您正在使用Matcher
类替换字符串。
答案是捕获变量中的替换字符串。
String str= matcher2.replaceAll("");
Matcher.replaceAll()@Java API
您可以通过下面的简单示例了解这一点。
StringBuffer sb=new StringBuffer("I love JAVA");
Pattern replace = Pattern.compile("love");
Matcher matcher2 = replace.matcher(sb.toString());
String s=matcher2.replaceAll("hate");
System.out.println(sb.toString());
System.out.println(s);
印刷品:
I love JAVA
I hate JAVA
Sb
尚未更改。