1

我有一个这样的字符串:

String orginal = "this is for test hello\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n" +
    "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nhello" + 
    "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nhello";

用户在文本区域输入内容时按'enter'很多次,所以在java中,它变成了很多'\r\n'。我想将其更改为:

String newStr = "this is for test hello\r\nhello\r\nhello"

我怎样才能只保留一个\r\n

4

2 回答 2

5

这个应该做...

String newStr = original.replaceAll("(\r\n)+", "\r\n");

您可能还想考虑使用line.separator系统属性而不是硬编码\r\n,因为这在其他平台上可能会有所不同。例如 Unix 只使用一个换行符\n。这将更便携...

final String NEWLINE = System.getProperty("line.separator");
String newStr = original.replaceAll("(" + NEWLINE + ")+", NEWLINE);
于 2013-02-20T09:37:51.920 回答
0

通用解决方案(LF - UNIX,CR-Mac,CRLF - Windows)可能是这样的

String newStr = original.replaceAll("(\r\n|\r|\n)+", "$1");
于 2013-02-20T10:24:52.217 回答