在java中删除字符串之间的多个换行符并替换为单换行符

在java中删除字符串之间的多个换行符并替换为单换行符,java,android,regex,Java,Android,Regex,我有绳子 String description = a \n \n \n \n \n b 我想删除换行符,使其仅为1换行符。 删除2个以上的换行符,使其仅为1个换行符 我试过这个 String descResult = description.replaceAll("([\n]){2,}", ""); 但是它不起作用。除了新行之外,您似乎也有周围的空格,所以您需要使用一个正则表达式,它还可以选择性地捕获可选空格。试试这个Java代码 String s = "a \n \n \n \n \n

我有绳子

String description = a 
\n
\n
\n
\n
\n
b
我想删除换行符,使其仅为1换行符。 删除2个以上的换行符,使其仅为1个换行符

我试过这个

String descResult = description.replaceAll("([\n]){2,}", "");

但是它不起作用。

除了新行之外,您似乎也有周围的空格,所以您需要使用一个正则表达式,它还可以选择性地捕获可选空格。试试这个Java代码

String s = "a \n \n \n \n \n b";
System.out.println("Before: " + s);
System.out.println("After: " + s.replaceAll("( *\n *){2,}", "\n"));
印刷品

Before: a 




 b
After: a
b

试试看,必须更换
\n

String descResult = description.replaceAll("([\n]){2,}", "\n");

你把它们拿走了。替换为
\n
(或
$1
,因为您将每个
\n
捕获到组1中)。请尝试使用
.replaceAll(“\n{2,},“\n”)
。或者,
.replaceAll((\\R){2,},“$1”)
替换为捕获的最后一个换行符序列。实际字符串中没有空格,问题的格式不正确。@WiktorStribiżew:是的。当我回答时,给定的字符串有空格,因此我认为它不起作用,所以发布了我的解决方案。但我认为,一般来说,一个人可能会选择有换行符的空格,在这种情况下,我的答案可能也会帮助其他人。谢谢你的留言。