如何使用Java删除字符串中的重复空格?
2022-08-31 07:37:33
如何使用Java删除字符串中重复的空格(包括制表符,换行符,空格等)?
喜欢这个:
yourString = yourString.replaceAll("\\s+", " ");
例如
System.out.println("lorem ipsum dolor \n sit.".replaceAll("\\s+", " "));
输出
lorem ipsum dolor sit.
这是什么意思?s+
?
\s+
是正则表达式。 匹配空格、制表符、换行符、回车符、换纸或垂直制表符,并显示“其中一个或多个”。因此,上面的代码将使用单个空格字符折叠所有长度超过一个字符的“空格子字符串”。\s
+
您可以使用正则表达式
(\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}"," ");