16

我有以下字符串

  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."

我试过很多正则表达式,也用谷歌搜索过,但没有运气。并没有找到相关的问题,请帮助,非常感谢提前

4

8 回答 8

49

使用\\s+代替,\\s因为您的输入中有两个或多个连续的空格。

string = str.replaceAll("\\s+"," ")
于 2013-09-18T11:00:20.893 回答
13

您可以使用replaceAllwhich 将正则表达式作为参数。似乎您想用一个空格替换多个空格。你可以这样做:

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

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

于 2013-09-18T11:00:24.850 回答
3

首先去掉多个空格:

String after = before.trim().replaceAll(" +", " ");
于 2013-09-18T11:10:10.430 回答
0

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

String example = "Interactive Resource";

System.out.println("Without space string: "+ example.replaceAll("\\s",""));

输出: Without space string: InteractiveResource

于 2019-10-28T18:04:26.597 回答
0
//user this for removing all the whitespaces from a given string for example a =" 1 2 3 4"
//output: 1234 
a.replaceAll("\\s", "")
于 2021-02-24T15:22:17.843 回答
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

于 2019-08-07T08:20:56.843 回答
0

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

这对我有用

于 2022-01-23T21:43:37.050 回答
0

如果要打印没有空格的字符串,只需将参数 sep='' 添加到打印函数,因为此参数的默认值为“”。

于 2020-06-28T17:16:11.227 回答