如何使用Java删除字符串中的重复空格?

2022-08-31 07:37:33

如何使用Java删除字符串中重复的空格(包括制表符,换行符,空格等)?


答案 1

喜欢这个:

yourString = yourString.replaceAll("\\s+", " ");

例如

System.out.println("lorem  ipsum   dolor \n sit.".replaceAll("\\s+", " "));

输出

lorem ipsum dolor sit.

是什么意思?s+

\s+是正则表达式。 匹配空格、制表符、换行符、回车符、换纸或垂直制表符,并显示“其中一个或多个”。因此,上面的代码将使用单个空格字符折叠所有长度超过一个字符的“空格子字符串”。\s+


来源:Java:删除字符串中的重复空格


答案 2

您可以使用正则表达式

(\s)\1

将其替换为 。$1

Java 代码:

str = str.replaceAll("(\\s)\\1","$1");

如果输入是,您将获得输出
,但如果输入是,它将保持不变,因为它没有任何连续的空格字符。"foo\t\tbar ""foo\tbar ""foo\t bar"

如果将所有空格字符(空格、垂直制表符、水平制表符、回车符、换页符、换行符、换行符)视为空格,则可以使用以下正则表达式将任意数量的连续空格替换为单个空格:

str = str.replaceAll("\\s+"," ");

但是,如果要用单个空格替换两个连续的空格,则应执行以下操作:

str = str.replaceAll("\\s{2}"," ");