删除字母之间的空格和单词之间的双重空格

时间:2016-06-02 03:07:40

标签: java

我需要删除字母之间的所有空格,并将双重空格分隔为单词之间的单个空格。

所以这(单词之间的双重空格):

  

了解你的朋友

需要成为这个:

  

你好,我的名字是bob

我试过了     temp = "h e l l o m y n a m e i s b o b"
    temp = temp.trim().replaceAll("\\s", "");
但它只是删除了所有空格。

我设法通过以下方式使其工作:
        temp = temp.replace(" ", ".");
        temp = temp.replace(" ", "");
        temp = temp.replace(".", " ");
但我想要一种更简单的方法。

3 个答案:

答案 0 :(得分:3)

你应该使用正则表达式(?!\ s)。这基本上表示任何空间,但后面没有空格。

这将使用如下:

temp =  "h e l l o  m y  n a m e  i s  b o b";
temp = temp.replaceAll("\\s(?!\\s)", "");
System.out.println(temp);

输出:你好,我的名字是bob

希望这会有所帮助:)

答案 1 :(得分:0)

试试这个

temp = temp.trim().replaceAll("(?<!\\s)\\s(?!\\s)", "");
temp = temp.replaceAll("\\s+", " ");

答案 2 :(得分:0)

更简单,更优雅的方式,不包括搞乱正则表达式。

String yourString = "a s d  d g d d d  g g";
String finalstr = "";

for (String s: yourString.split(" ")) {
    if (s.equals(""))
        s = " ";
    finalstr += s;
}
System.out.println(finalstr);

输出: asd dgddd gg