0

我有一个将字符串作为输入的方法,并从中删除所有空格和换行符。为了实现这一点,我使用了 java 库中的以下方法:

public String clean(String s) {
    return s.replaceAll(System.lineSeparator(),"").replaceAll(" ","");
}

这在 Linux 下运行良好,但在 Windows 上,它无法删除行分隔符,因为字符串包含它们。

有什么我想念的吗?我知道在基于 Unix 的系统中换行符是 /n 并且我不知道它在 Windows 中可能是什么,但正如 java 文档所说, System.lineSeparator() 方法应该提供一个独立于平台的行分隔符。

4

2 回答 2

8

我建议您在删除空格时尝试此操作

public static String clean(String s) {
    return s.replaceAll("\\s+", "");
}

我怀疑您遇到的问题是您正在阅读在 linux 机器上的 windows 上编写的文件。您的代码不会删除\r您在 Windows 上的额外内容。

于 2013-07-31T20:53:18.167 回答
1

尝试替换所有\n以及\r\n. 是的,lineSeparator 应该处理这个问题,但也许它没有。

于 2013-07-31T20:54:33.077 回答