我想知道为什么我没有得到预期的结果:
String t = "1302248663033 <script language='javascript'>nvieor\ngnroeignrieogi</script>";
t.replaceAll("\n", "");
System.out.println(t);
输出是:
1302248663033 <script language='javascript'>nvieor
gnroeignrieogi</script>
所以我想知道为什么\n
仍然在那里。有人知道吗? \n 有什么特殊之处吗?
EDIT:
所以我在将换行符与 .在正则表达式中,没有意识到人们经常使用 DOTALL 选项,所以我将在这里添加需要做的事情以供将来参考:
String text = null;
text = FileUtils.readFileToString(inFile);
Pattern p = Pattern.compile("<script language='javascript'>.+?</script>\n", Pattern.DOTALL);
text = p.matcher(text).replaceAll("");
out.write(text);
字符串是不可变的。字符串操作如replaceAll
不要修改您调用它的实例,它们返回新的 String 实例。解决方案是将修改后的字符串分配给原始变量。
t = t.replaceAll("\n", "");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)