首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中删除文件中的换行符?

如何在Java中删除文件中的换行符?
EN

Stack Overflow用户
提问于 2010-01-29 23:44:52
回答 16查看 603.5K关注 0票数 281

如何在Java中替换字符串中的所有换行符,以便在Windows和Linux上工作(例如,没有操作系统特定的回车/换行符/换行符等问题)?

我试过了(注意readFileAsString是一个将文本文件读入字符串的函数):

代码语言:javascript
复制
String text = readFileAsString("textfile.txt");
text.replace("\n", "");

但这似乎行不通。

如何做到这一点?

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2010-01-29 23:47:18

您需要将text.replace()的结果设置为text

代码语言:javascript
复制
String text = readFileAsString("textfile.txt");
text = text.replace("\n", "").replace("\r", "");

这是必要的,因为字符串是不可变的--调用replace不会更改原始字符串,它会返回一个已更改的新字符串。如果不将结果赋给text,那么这个新字符串就会丢失并被垃圾回收。

至于获取任何环境的换行符字符串--可以通过调用System.getProperty("line.separator")获得。

票数 479
EN

Stack Overflow用户

发布于 2017-04-29 06:38:32

This function将所有空格(包括换行符)标准化为单个空格。不完全是原始问题所要求的,但在许多情况下可能会完全满足需要:

代码语言:javascript
复制
import org.apache.commons.lang3.StringUtils;

final String cleansedString = StringUtils.normalizeSpace(rawString);
票数 31
EN

Stack Overflow用户

发布于 2010-01-29 23:52:21

如果只想删除在当前操作系统上有效的行终止符,可以这样做:

代码语言:javascript
复制
text = text.replaceAll(System.getProperty("line.separator"), "");

如果您想确保删除任何行分隔符,可以这样做:

代码语言:javascript
复制
text = text.replaceAll("\\r|\\n", "");

或者,稍微冗长一点,但不那么繁琐:

代码语言:javascript
复制
text = text.replaceAll("\\r", "").replaceAll("\\n", "");
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2163045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档