String.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;
}

    while的条件中字符的Unicode码小于等于空字符的Unicode码32(\U0020),就 
    表示空字符了,这怎么理解?

去掉字符串前后的" "

trim 是去除两端的空格,
先转成 char 数组 , 如果长度大于0 , 第一个字符是 空格 , st ++ ; (如果第一个字符非空 ,那么直接跳出当前的while) 然后继续判断下一个 ,依次直到 val[st] 不为' ' 时,跳至 下一个while
len 也同上 直到 val[len] 不为' ' 时, 截取 从 st - len 之间的值 , 返回;

去掉string两端空格

第一个while循环就是去掉前面的空格,只要有空格st的值就加1,直到遇到不为空字符的字符为止(即是跳到第二个while)它是从后往前
有就len--。直到遇到不为空字符的字符为止 就返回

若果st大于0(说明前面有空格)或者len小于value.length(说明后面有空格),那就返回substring(st,len)前面省略了this既是传过来的字符串
否则返回字符串本身