如何使用正则表达式或其他方法删除额外的'\r\n';在java字符串中
我有这样一个字符串:如何使用正则表达式或其他方法删除额外的'\r\n';在java字符串中,java,string,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"; 在文本区域中输入内容时,用户经常按“enter”,因此在java中,它会更改为大量的“\r\n”。
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
这样就可以了
String newStr = original.replaceAll("(\r\n)+", "\r\n");
您可能还想考虑使用<代码>行。分隔符< /C>系统属性,而不是硬编码<代码> \r\n>代码>,因为这可能在其他平台上有所不同。例如,Unix只使用单行提要
\n
。这会更便于携带
final String NEWLINE = System.getProperty("line.separator");
String newStr = original.replaceAll("(" + NEWLINE + ")+", NEWLINE);
这应该可以做到
String newStr = original.replaceAll("(\r\n)+", "\r\n");
您可能还想考虑使用<代码>行。分隔符< /C>系统属性,而不是硬编码<代码> \r\n>代码>,因为这可能在其他平台上有所不同。例如,Unix只使用单行提要
\n
。这会更便于携带
final String NEWLINE = System.getProperty("line.separator");
String newStr = original.replaceAll("(" + NEWLINE + ")+", NEWLINE);
通用解决方案(LF-UNIX、CR-Mac、CRLF-Windows)可能是这样的
String newStr = original.replaceAll("(\r\n|\r|\n)+", "$1");
通用解决方案(LF-UNIX、CR-Mac、CRLF-Windows)可能是这样的
String newStr = original.replaceAll("(\r\n|\r|\n)+", "$1");
字符串是否来自
JTextArea
?字符串是否来自JTextArea
?