鍍金池/ 問答/Java/ 關于Java中String類中的Trim()方法

關于Java中String類中的Trim()方法

Trim方法是去除字符串兩端的空白字符,關于返回值處有些疑問,為何要進行下標的判斷,本人理解,不管字符串是否有空白字符,返回子串即可。

public String trim() {
        int len = value.length;
        int st = 0;
        char[] val = value;    /* avoid getfield opcode */

        while ((st < len) && (val[st] <= ' ')) {
            st++;
        }
        while ((st < len) && (val[len - 1] <= ' ')) {
            len--;
        }
        return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
    }

最后return處不是很理解,尋求幫助,謝謝~!

回答
編輯回答
愿如初

substring方法會創(chuàng)建一個新的String對象,這里判斷下標是為了盡量減少對象的創(chuàng)建,避免浪費內(nèi)存。

2017年9月1日 13:08
編輯回答
心癌

st表示無空格的開始位置,len表示無空格的結(jié)束位置
st>0 表示有前置空格,len<length表示有后置空格
所以做一下OR判斷,如果有空格,返回一個substring,
如果前后都沒有空格,返回this

2018年2月21日 11:51
編輯回答
伴謊

如果字符串沒有空白字符,那么直接返回this(本身)。 如果空白字符,就用subString()創(chuàng)建一個新的String返回。

2017年1月20日 01:38
編輯回答
薄荷綠

如果有空白字符,返回substring后的新字符串,否則返回本身。

2018年7月16日 08:40