0 0

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

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

1234
5678
9000

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

问题补充:
langshao 写道
引用
注意,楼主是说“字符串”,我也是说“字符串”,我还没说"文件"


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

是的,是文件里的字符串,大哥,帮忙啊

问题补充:
langshao 写道
引用
是的,是文件里的字符串,大哥,帮忙啊


3 楼已经回答了。
str.replaceAll("\r", "").replaceAll("\n", "");  


这个不行,我试过了.
OO 
2011年1月06日 13:12

18个答案 按时间排序 按投票排序

0 0

采纳的答案

str.replaceAll("\r", "").replaceAll("\n", "");


这样写就windows和linux通用了。

2011年1月06日 13:28
0 0

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

试试上面的可以不

2011年1月06日 15:10
0 0

如果你想剔除 CR LF

str=str.replace("\r","").replace("\n","");


或者

str.replaceAll("\\r", "").replaceAll("\\n", "");  


这个事情我也不想和你争

2011年1月06日 14:04
0 0

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

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

System.out.println("a\r\n\nb");  
System.out.println("a\r\n\nb".replaceAll("\r", "").replaceAll("\n", ""));


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

2011年1月06日 13:56
0 0

str.replaceAll("\\r", "").replaceAll("\\n", "");  

2011年1月06日 13:54
0 0

引用
是的,是文件里的字符串,大哥,帮忙啊


3 楼已经回答了。
str.replaceAll("\r", "").replaceAll("\n", "");  

2011年1月06日 13:46
0 0

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

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

2011年1月06日 13:43
0 0

引用
replaceAll 和 replace 是不同的阿

replace是regex replace是 string


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

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


试过才好说。
System.out.println("a\r\n\nb");
System.out.println("a\r\n\nb".replaceAll("\r", "").replaceAll("\n", ""));

2011年1月06日 13:41
0 0

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


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

2011年1月06日 13:38
0 0

replaceAll 和 replace 是不同的阿

replace是regex replace是 string


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

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

2011年1月06日 13:36
0 0

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


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

2011年1月06日 13:33
0 0

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+", ""));
	}

}

2011年1月06日 13:32
0 0

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


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

2011年1月06日 13:31
0 0

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

2011年1月06日 13:30
0 0

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

2011年1月06日 13:28
0 0

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

2011年1月06日 13:28
0 0

str.replaceAll("\n", "")

linux的换行符只有 \n 。

2011年1月06日 13:26
0 0

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

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

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

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

2011年1月06日 13:26

相关推荐

    回车与换行的区别详解

    换行(Line Feed),用字符`\n`表示,它的作用是将光标向下移动一行,但不改变列的位置。在电传打字机中,这相当于纸张向下移动一行,以便开始新的一行打印。在编程中,`\n`用于结束当前行并开始新的行。如果在C语言...

    回车和换行的区别 回车和换行的区别

    例如,一个在Windows系统上创建的文本文件,如果直接在Linux环境下打开,可能会看到每行结尾多出一个不可见的字符,即回车符。同样,一个在Linux上创建的文本文件,在Windows下打开时,可能无法正确识别每一行的结尾...

    奇怪的回车换行问题

    回车换行(Carriage Return, Line Feed,简称CRLF)是计算机文本处理中用于表示新行的字符组合。在不同的操作系统中,回车换行的表示方式有所不同: 1. **Windows系统**:Windows使用`\r\n`(0x0D, 0x0A)作为一行...

    vimz中设置回车换行缩进

    ### vimz中设置回车换行缩进 在文本编辑器的世界里,Vim(Vi Improved)是一款功能强大且高效的文字编辑工具,尤其受到程序员和系统管理员的喜爱。它支持多种编程语言,并允许用户通过配置来定制编辑环境。本文将...

    回车和换行区别

    我们可以看到,在 Linux 中,遇到换行符("\n")会进行回车+换行的操作,回车符反而只会作为控制字符("^M")显示,不发生回车的操作。而在 Windows 中,要回车符+换行符("\r\n")才会回车+换行,缺少一个控制符...

    关于回车和换行

    下面是一个简单的C语言代码示例,用于演示不同文件操作模式下对回车换行字符的影响: ```c #include int main() { FILE *fp1, *fp2, *fp3, *fp4; char a[10], b[10]; // 以文本模式打开文件 fp1 = fopen("01...

    Java 替换字符串中的回车换行符的方法

    // 将内容区域的回车换行去除 ``` 这段代码中,`replaceAll()`方法接收两个参数:第一个是正则表达式,第二个是要替换的字符串。在这个例子中,`[\\t\\n\\r]` 是一个字符集,它匹配任何制表符(`\t`)、换行符(`\...

    UNIX回车换行与Windows下的区别

    例如,当在Windows环境下打开一个纯UNIX格式的文本文件时,由于文件中只有换行符(LF),没有回车符(CR),因此Windows系统默认的记事本程序无法识别正确的换行位置,导致所有文本内容被显示在一行内,造成阅读困难...

    把textarea中字符串里含有的回车换行替换成<br>的javascript代码

    textarea元素允许用户输入多行文本,用户输入的内容中常包含回车换行。有时为了满足特定的展示需求,需要在前端将这些换行符替换为HTML的换行标签` `。 在HTML中,回车符`\r`表示回车(Carriage Return, CR),...

    彻底搞清回车(0x0d)和换行(0x0a)

    例如,在 Linux 下,回车符对应的字符是 0x0d,而换行符对应的字符是 0x0a。在 Windows 平台下,情况也是如此。因此,在讨论回车符和换行符时,我们必须依据环境来讨论,否则就会出现混淆和误解。 在 arm-linux C ...

    深入Windows下的回车是回车换行(\r\n)还是换行回车(\n\r)的详解

    Windows操作系统使用回车换行(\r\n)作为一行结束的标识,而Unix/Linux系统则只使用换行(\n)作为新的一行开始的标记,而在早期的Apple Mac OS系统中,回车(\r)就足够表示新行。 回车字符(CR,Carriage Return...

    回车键换行.rar回车键换行.rar

    在文本编辑器或编程环境中,按下回车键会触发一个“换行”操作,将光标移动到下一行,从而在文本中创建新的段落或语句。 在编程和数据传输中,回车键和换行符常常是分开讨论的。回车(CR)字符表示返回到一行的起始...

    回车,换行,tab,空格

    而Windows系统在表示新行时则采用了回车换行的组合(CR+LF),即每行结束时同时使用CR和LF字符。Mac系统早期使用回车符(CR)作为新行的表示方式,这反映了其早期产品在文本处理方面的设计选择。 由于不同操作系统...

    php去除换行(回车换行)的三种方法

    本文将详细介绍三种去除PHP字符串中回车换行的方法。 1. 使用`str_replace`函数替换换行 `str_replace()`函数是PHP中的一个字符串替换函数,它接受三个参数:要查找的值,要替换的值,以及要在其中进行搜索和替换的...

    C# TextBox 换行功能实现

    解决这个问题的方法是使用 Environment.NewLine 属性,它可以确保在不同的平台下都能够返回正确的换行字符。在 Windows 下是 "\r\n",在 Linux(Mono) 下是 "\n"。这样,我们可以使用 Environment.NewLine 属性来设置...

    Linux 中删除文本中的回车字符的方法

    Windows使用回车换行(CRLF,即CR+LF)作为一行的结束,而Linux只使用换行(LF)作为行结束。这就可能导致在Linux下处理Windows文本文件时出现不兼容性问题。不过,有几种简单的方法可以消除这些回车字符。 1. **...

    windows和linux、Mac系统换行规则的区别.docx

    而在Windows系统中,每行结束使用回车换行两个字符(CR LF),即ASCII码13紧接着ASCII码10。Mac系统早期(OS 9以前)采用的是单独的回车符(CR)作为行结束。现代的Mac OS X则遵循了Unix标准,使用LF作为换行符。 ...

    vim 全文字符串替换

    - 文中提到的`^M`字符通常表示的是Windows系统的换行符`CR`(回车),而在Linux系统中通常使用`LF`(换行)作为换行符。因此,在跨平台复制粘贴文本时可能会出现`^M`字符残留问题。 - 要删除所有`^M`字符,可以...

    回车和换行有什么区别?我们平时按下的Enter键是回车还是换行

    在文本模式下,操作系统会自动处理回车换行的转换,例如,Windows系统会在读取`\n`时将其转换为`\r\n`,而在写入时将`\r\n`转换为`\n`。二进制模式则不会进行这种转换,保留原始数据的完整性和一致性。 例如,上述...

Global site tag (gtag.js) - Google Analytics