为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

撒科打诨 2019-11-06 11:00:15
如何使用Java删除字符串中重复的空格(包括制表符,换行符,空格等)?
查看完整描述

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匹配空格,制表符,换行符,回车符,换页或垂直制表符,并+说“其中的一个或多个”。因此,以上代码将用一个空格字符折叠长于一个字符的所有“空白子字符串”。


查看完整回答
反对 回复 2019-11-06
?
凤凰求蛊

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}"," ");


查看完整回答
反对 回复 2019-11-06
?
天涯尽头无女友

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您需要在哪里删除重复的空格的字符串


查看完整回答
反对 回复 2019-11-06
  • 3 回答
  • 0 关注
  • 932 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信