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

" hello     there   "

变成了这样的东西

"hello there"

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

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

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

但事实并非如此。


当前回答

削减()

只删除开头和结尾空格。

从Java文档, 返回值为此字符串的字符串,删除前导和尾部的任何空格。

System.out.println(" D ev  Dum my ".trim());

“D ev House my”

replace(), replaceAll()

替换单词中的所有空字符串,

System.out.println(" D ev  Dum my ".replace(" ",""));

System.out.println(" D ev  Dum my ".replaceAll(" ",""));

System.out.println(" D ev  Dum my ".replaceAll("\\s+",""));

输出:

"DevDummy"

"DevDummy"

"DevDummy"

注意:“\s+”为类似空格字符的正则表达式。

参考资料:https://www.codedjava.com/2018/06/replace-all-spaces-in-string-trim.html

其他回答

看到String.replaceAll。

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

然后使用String.trim。

String str = " hello world"

首先减少空间

str = str.trim().replaceAll(" +", " ");

第一个字母大写,其他字母小写

str = str.substring(0,1).toUpperCase() +str.substring(1,str.length()).toLowerCase();

我知道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     there   ";
mytext = mytext.replaceAll("( +)", " ");

把+放在圆括号内。

请使用以下代码

package com.myjava.string;

import java.util.StringTokenizer;

public class MyStrRemoveMultSpaces {

    public static void main(String a[]){

        String str = "String    With Multiple      Spaces";

        StringTokenizer st = new StringTokenizer(str, " ");

        StringBuffer sb = new StringBuffer();

        while(st.hasMoreElements()){
            sb.append(st.nextElement()).append(" ");
        }

        System.out.println(sb.toString().trim());
    }
}