我有一个方法,它接受一个字符串作为输入,并从中取出所有空格和换行符。为了实现这一点,我使用了java库中的以下方法:
public String clean(String s) {
return s.replaceAll(System.lineSeparator(),"").replaceAll(" ","");
}
这在Linux下工作正常,但是当涉及到Windows时,它无法删除行分隔符,因为字符串包含它们。
有什么我想念的吗?我知道在基于Unix的系统中,换行符是/ n,我不知道它在Windows中可能是什么,但正如java文档所述,System.lineSeparator()方法应提供与平台无关的行分隔符。
答案 0 :(得分:7)
我建议您在删除空格时尝试此操作
public static String clean(String s) {
return s.replaceAll("\\s+", "");
}
我怀疑你遇到的问题是你正在读取linux盒子上写在windows上的文件。您的代码不会删除Windows上的额外\r
。
答案 1 :(得分:1)
尝试替换所有\n
以及\r\n
。是的,lineSeparator应该已经处理好了,但也许没有。