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

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

1234
5678
9000

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

oo

18个回答

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

楼主之所以会问“在linux下用java怎么实现”,那是因为他在linux上遇到问题了,那就能得出楼主说的是“文件里的字符串”。

[quote]replaceAll 和 replace 是不同的阿

replace是regex replace是 string

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

以上的解答,含有replaceAll的都错了[/quote]

试过才好说。
[code="java"]System.out.println("a\r\n\nb");
System.out.println("a\r\n\nb".replaceAll("\r", "").replaceAll("\n", ""));[/code]

  linux和unix系统的换行是"\n",而windows的换行并不是直接的"n",是"\r\n"。所以out.write("\n")只能得到一个黑框,因为windos不认为这是个“换行”。 直接从记事本输入的话,windows自动输入了"\r\n",所以从从文本文件中读出来的也是"\r\n",可以正常显示。

  那么这是为什么呢?稍微学过正则表达式的朋友都知道:\r是回车符,而\n是换行符。Windows默认\n在文档中显示的是一个空格或者小黑框。所以,要先回车,再换行。

[quote]是的,是文件里的字符串,大哥,帮忙啊[/quote]

3 楼已经回答了。
[code="java"]str.replaceAll("\r", "").replaceAll("\n", ""); [/code]

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

[/code]

windows下是用 str.replaceAll("\r\n", "") 可以实现

那么 linux 下用 str.replaceAll("\r", "").replaceAll("\n", ""); 就能实现。

[code="java"]System.out.println("a\r\n\nb");

System.out.println("a\r\n\nb".replaceAll("\r", "").replaceAll("\n", ""));[/code]

如果说不行,那是其他的问题。 你可以把整个相关代码贴出来看看。

如果你想剔除 CR LF

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

或者

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

这个事情我也不想和你争

str.replaceAll(System.getProperty("line.separator"),"")

试试上面的可以不

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