在Java中寻找快速、简单的方法来更改此字符串

" hello     there   "

变成了这样的东西

"hello there"

在这里我用一个空格替换了所有这些多个空格,除了我还希望字符串开头的一个或多个空格消失。

像这样的事情能让我在一定程度上做到

String mytext = " hello     there   ";
mytext = mytext.replaceAll("( )+", " ");

但事实并非如此。


当前回答

这对我来说非常有效:sValue = sValue.trim()。replaceAll("\\s+", " ");

其他回答

您可以首先使用String.trim(),然后对结果应用regex replace命令。

看到String.replaceAll。

使用正则表达式“\s”并替换为“”。

然后使用String.trim。

我知道replaceAll方法更简单,但我也想张贴这个。

public static String removeExtraSpace(String input) {
    input= input.trim();
    ArrayList <String> x= new ArrayList<>(Arrays.asList(input.split("")));
    for(int i=0; i<x.size()-1;i++) {
        if(x.get(i).equals(" ") && x.get(i+1).equals(" ")) { 
            x.remove(i); 
            i--; 
        }
    }
    String word="";
    for(String each: x) 
        word+=each;
    return word;
}
String myText = "   Hello     World   ";
myText = myText.trim().replace(/ +(?= )/g,'');


// Output: "Hello World"

这对我来说非常有效:sValue = sValue.trim()。replaceAll("\\s+", " ");