3 回答
TA贡献1866条经验 获得超5个赞
像这样:
yourString = yourString.replaceAll("\\s+", " ");
例如
System.out.println("lorem ipsum dolor \n sit.".replaceAll("\\s+", " "));
输出
lorem ipsum dolor sit.
那\s+是什么意思
\s+是一个正则表达式。\s匹配空格,制表符,换行符,回车符,换页或垂直制表符,并+说“其中的一个或多个”。因此,以上代码将用一个空格字符折叠长于一个字符的所有“空白子字符串”。
TA贡献1825条经验 获得超4个赞
您可以使用正则表达式
(\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}"," ");
TA贡献1831条经验 获得超9个赞
试试这个-您必须 import java.util.regex.*;
Pattern pattern = Pattern.compile("\\s+");
Matcher matcher = pattern.matcher(string);
boolean check = matcher.find();
String str = matcher.replaceAll(" ");
string您需要在哪里删除重复的空格的字符串
添加回答
举报