如其他答案所述,您的代码主要String.replace(...)不起作用,因为不会更改目标字符串。(它不能 - Java字符串是不可变的!)它实际上做的是创建一个新的String,其中的字符根据需要进行了更改。但是你的代码然后扔掉那个String ...
这是一些可能的解决方案。哪一个最正确取决于你究竟想做什么。
// #1
text = text.replace("\n", "");
只需删除所有换行符。这不适用于Windows或Mac线路终端。
// #2
text = text.replace(System.getProperty("line.separator"), "");
删除当前平台的所有行终止符。这不适用于您尝试在Windows上处理(例如)UNIX文件的情况,反之亦然。
// #3
text = text.replaceAll("\\r|\\n", "");
删除所有Windows,UNIX或Mac行终止符。但是,如果输入文件是文本,这将连接单词; 例如
Goodbye cruel
world.
变
Goodbye cruelworld.
所以你可能真的想这样做:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
用空格替换每个行终止符。从Java 8开始,您也可以这样做:
// #5
text = text.replaceAll("\\R", " ");
如果您想用一个空格替换多个行分隔符:
// #6
text = text.replaceAll("\\R+", " ");