1. 程式人生 > >Java去掉字串最後的空格

Java去掉字串最後的空格

在字串的方法中,有一個方法叫trim,是用來去掉字串中的首尾空格的一個方法,具體實現如下:

public String trim() {
        int len = value.length;//value是一個字元陣列
        int st = 0;//表示字串開始第一個不是空格的字元的下標
        char[] val = value;    /* avoid getfield opcode */
		//表示從字元陣列的頭開始遍歷
        while ((st < len) && (val[st] <= ' ')) {
            st++;
        }
        //表示從字元陣列的尾開始遍歷
        //len的最終值是字串從尾部開始遍歷第一個不是空格的字元下標
        while ((st < len) && (val[len - 1] <= ' ')) {
            len--;
        }
        return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
    }

效果如下:
String的trim方法
現在我有個需求是去掉字串的末尾空格,所以改造了一下這個trim方法的實現,具體程式碼如下所示:

public String trimEnd(char[] value) {
        int len = value.length;
        int st = 0;
        char[] val = value;
        while ((st < len) && (val[len - 1] <= ' ')) {
            len--;
        }
        return ((st > 0) || (len < value.length)) ? new String(val).substring(st, len) : new String(val);
    }

關鍵點是你需要理解trim的實現,這樣才可以修改原始碼,做一個新的實現。所以我這個方法是以字元陣列為引數,迴圈字元陣列,然後比對空格,記錄從尾部向前第一個不是空格字元的下標,然後進行擷取,最後將其轉為String型別返回。