如何使用正则表达式或其他方法删除java字符串中的额外'\ r \n'

阳光E*_*Emi 1 java string

我有一个像这样的字符串:

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";
Run Code Online (Sandbox Code Playgroud)

用户在文本区域输入内容时按"输入"很多时间,因此在java中,它会变为很多'\ r \n'.我想将其更改为:

String newStr = "this is for test hello\r\nhello\r\nhello"
Run Code Online (Sandbox Code Playgroud)

我怎么能只保留一个 \r\n

Zut*_*tty 5

这应该做到......

String newStr = original.replaceAll("(\r\n)+", "\r\n");
Run Code Online (Sandbox Code Playgroud)

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

final String NEWLINE = System.getProperty("line.separator");
String newStr = original.replaceAll("(" + NEWLINE + ")+", NEWLINE);
Run Code Online (Sandbox Code Playgroud)