Java去掉字串最後的空格
阿新 • • 發佈:2018-11-04
在字串的方法中,有一個方法叫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; }
效果如下:
現在我有個需求是去掉字串的末尾空格,所以改造了一下這個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型別返回。