如何去除字符串中间的空格

17

我有以下字符串

  string = "Book Your Domain And Get\n \n\n \n \n \n Online Today."
  string = str.replace("\\s","").trim();

返回什么内容

  str = "Book Your Domain And Get     Online Today."

但我想要的是什么

  str = "Book Your Domain And Get Online Today."

我尝试了许多正则表达式,也搜索了很多但没有成功。并且没有找到相关的问题。请帮忙,先行致谢。


所有这些换行符是怎么回事? - Chris B
9个回答

52

如果您的输入中有两个或多个连续的空格,请使用\\s+而不是\\s

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

1
@JayakrishnanPm 这将删除所有空格,而不是用单个空格替换多个连续的空格。 - Rafi Kamal

14

你可以使用replaceAll函数并传入一个正则表达式作为参数。看起来你想要将多个空格替换为单个空格。你可以这样做:

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

它将用单个空格替换2个或更多连续的空白符。


4

首先去除多余空格:

String after = before.trim().replaceAll(" +", " ");

0
//user this for removing all the whitespaces from a given string for example a =" 1 2 3 4"
//output: 1234 
a.replaceAll("\\s", "")

0
String string_a = "AAAA           BBB";
String actualTooltip_3 = string_a.replaceAll("\\s{2,}"," ");
System.out.println(String actualTooltip_3);

输出将是:AAA BBB

0

例如,删除字符串中单词之间的空格:

String example = "交互式资源";

System.out.println("无空格字符串:" + example.replaceAll("\\s",""));

输出结果:无空格字符串:交互式资源


0

字符串 s2=" 1 2 3 4 5 "; String after=s2.replace(" ", "");

这对我有用


1
这个问题已经被其他答案覆盖了。 - Gurkirat Singh Guliani

0
如果您想打印一个没有空格的字符串,只需在print函数中添加参数sep='',因为该参数的默认值是“ ”。

0
如果您只想删除两个单词或字符之间的空格,而不是在字符串末尾,则可以使用以下正则表达式:
        String s = "   N    OR  15  2    ";

    Pattern pattern = Pattern.compile("[a-zA-Z0-9]\\s+[a-zA-Z0-9]", Pattern.CASE_INSENSITIVE); 

    Matcher m = pattern.matcher(s);

        while(m.find()){
        String replacestr = "";


        int i = m.start();
            while(i<m.end()){
                replacestr = replacestr + s.charAt(i);
                i++;
            }

            m = pattern.matcher(s);
        }

        System.out.println(s);

它只会删除字符或单词之间的空格,而不是末尾的空格,并且输出为

NOR152


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接