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

Java 删除字母之间的空格和单词之间的双空格,java,Java,我需要删除字母之间的所有空格,并将双空格变成单词之间的单个空格 所以这个(单词之间的双空格): 我的名字是a m e i s b b b 必须做到这一点: 你好,我叫鲍勃 我试过了 temp=“h e l o m y n a m e i s b o b” temp=temp.trim() 但它只是删除了所有的空间 我通过做: temp=temp.replace(“,”) temp=temp.replace(“,”) temp=temp.replace(“.”,”) 但是我想要一种更简单的方法。试

我需要删除字母之间的所有空格,并将双空格变成单词之间的单个空格

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

我的名字是a m e i s b b b

必须做到这一点:

你好,我叫鲍勃

我试过了
temp=“h e l o m y n a m e i s b o b”

temp=temp.trim()
但它只是删除了所有的空间

我通过做:
temp=temp.replace(“,”)
temp=temp.replace(“,”)
temp=temp.replace(“.”,”)
但是我想要一种更简单的方法。试试这个

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

temp=temp.trim()

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

您应该使用regex\s(?!\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);
输出:你好,我叫鲍勃


希望这有帮助:)

值得注意的是,这是有效的,因为它使双空间中的第一个空间保持不变,并杀死第二个空间。