如其他答案所述,您的代码无法正常运行主要是因为String.replace(...)
未更改target String
。(不能-Java字符串是不可变的!)replace
实际上是创建并返回一个新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+", " ");