如何在Java中替换字符串中的所有换行符,以便在Windows和Linux上工作(例如,没有操作系统特定的回车/换行符/换行符等问题)?
我试过了(注意readFileAsString是一个将文本文件读入字符串的函数):
String text = readFileAsString("textfile.txt");
text.replace("\n", "");但这似乎行不通。
如何做到这一点?
发布于 2010-01-29 23:47:18
您需要将text.replace()的结果设置为text
String text = readFileAsString("textfile.txt");
text = text.replace("\n", "").replace("\r", "");这是必要的,因为字符串是不可变的--调用replace不会更改原始字符串,它会返回一个已更改的新字符串。如果不将结果赋给text,那么这个新字符串就会丢失并被垃圾回收。
至于获取任何环境的换行符字符串--可以通过调用System.getProperty("line.separator")获得。
发布于 2017-04-29 06:38:32
This function将所有空格(包括换行符)标准化为单个空格。不完全是原始问题所要求的,但在许多情况下可能会完全满足需要:
import org.apache.commons.lang3.StringUtils;
final String cleansedString = StringUtils.normalizeSpace(rawString);发布于 2010-01-29 23:52:21
如果只想删除在当前操作系统上有效的行终止符,可以这样做:
text = text.replaceAll(System.getProperty("line.separator"), "");如果您想确保删除任何行分隔符,可以这样做:
text = text.replaceAll("\\r|\\n", "");或者,稍微冗长一点,但不那么繁琐:
text = text.replaceAll("\\r", "").replaceAll("\\n", "");https://stackoverflow.com/questions/2163045
复制相似问题