linux下如何替换不可见的回车换行字符

一个字符串里有换行符(不是\n),比如:

1234
5678
9000

我想把这个换行符替换成另外一个字符串("")得到字符串 "123456789000",在windows下是用 str.replaceAll("\r\n", "") 可以实现, 请问在linux下用java怎么实现啊?

oo

18个回答

[code="java"]str.replaceAll("\r", "").replaceAll("\n", "");[/code]

这样写就windows和linux通用了。

简单的方法:
StringBuffer buf = new StringBuffer();

BufferedReader br = new BufferedReader(new FileReader("文件名"));

while ((line = br.readLine()) != null) {
buf.append(line.trim());
}

// 你要的字符串
System.out.println(buf.toString());

[code="java"]str.replaceAll("\n", "")[/code]
linux的换行符只有 \n 。

你题的意思应该是如何获取这个不可见的字符是什么吧。
是文件的话,可以hexdump看一下,
如果不是你就直接用java来取
str.getBytes,然后看一下第五个字节是什么,再替换。

只要字符串一样,那么跟windows和linux没关系,处理方式一样str.replaceAll("\r\n", "")

linux不是'\n'么?没遇到过。不过我推荐你可以把每个char的byte打印出来,看看到底是什么,然后再进行replace。

[quote]只要字符串一样,那么跟windows和linux没关系,处理方式一样str.replaceAll("\r\n", "")[/quote]

想替换linux上的文本文件的换行,就是和替换windows上的文本文件的换行不一样。

[code="java"]
public class Test {

/**
 * @param args
 */
public static void main(String[] args) {
    String str = "1234 \n\r\t\t\r\t   \n5678";
    System.out.println(str.replaceAll("\\s+", ""));
}

}
[/code]

[quote]想替换linux上的文本文件的换行,就是和替换windows上的文本文件的换行不一样。[/quote]

注意,楼主是说“字符串”,我也是说“字符串”,我还没说"文件"

replaceAll 和 replace 是不同的阿

replace是regex replace是 string

\r\n要变成 \r\n啊

以上的解答,含有replaceAll的都错了

共18条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问