1. 程式人生 > >Java 英文句子去掉多餘的空格

Java 英文句子去掉多餘的空格

英文句子一般都是每個英文單詞之間只隔一個空格,開頭和末尾沒有空格。

思路:

    1.去掉首尾空格

    2.遍歷字串,判斷是否為空格

    (1)當前字元不是空格,加入

    (2) 當前字元是空格,再判斷下一個字元是否是空格,下一個字元是空格,則跳過;不是空格則當前字元是單詞之間的空格,加入

上程式碼

public class Main {

    public static void main(String[] args) {

        test("   I  am    code  ");

        test("I   am   code");

        test("    I       am  code");

        test("I  am  code   ");
    }


    private static void test(String str){
        StringBuilder result = new StringBuilder();

        // 去掉首尾的空格
        String trimStr = str.trim();

        int length = trimStr.length();
        
        for (int i=0;i<length;i++){
            char currentStr = trimStr.charAt(i);
            // 不是空格,加入
            if (currentStr!=' '){
                result.append(currentStr);
            }

            // 是空格,判斷下一個字元是否為空格,不為空格則加入,是空格則跳過
            if (currentStr==' '&&trimStr.charAt(i+1)!=' '){
                result.append(' ');
            }
        }

        System.out.print("result="+result.toString());
        System.out.println(" length="+result.length());

    }
}

結果

   

還有一種方法就是利用String裡的replaceAll(String regex,String replacement)方法

可以看到使用了正則,則我們可以想到匹配大於等於2的空格字串替換成1個空格。

private static void test1(String str){
        // 匹配大於等於2個空格字串替換成1個空格
        String handleStr = str.replaceAll(" {2,}", " ");
        // 去掉首尾的空格
        String result = handleStr.trim();
        System.out.print("result="+result.toString());
        System.out.println(" length="+result.length());
}