String的trim方法我们一般都是人为是用来去除空格的,但是事实真的是那样么?
public String trim() {
int len = value.length;
int st = 0;
char[] val = value; /* avoid getfield opcode */
/**
此处的循环标识从前向后查找编码小于32的,直到碰到大于32或者等于字符长度时即停止
*/
while ((st < len) && (val[st] <= ' ')) {// ' ' 在编码即中对应 32
st++;
}
/**
此处的循环表示从后向前查找编码小于32的,直到碰到大于32或者等于上一步循环结束位置时即停止
*/
while ((st < len) && (val[len - 1] <= ' ')) {
len--;
}
return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
}
从上边的代码我们可以看出,其实trim方法并不只是排除了空格,而是排除了小于等于32的所有字符,虽然对于我们平常来说好像也只是涉及到了空格,但是能在源码中发现一些小惊喜还是不错的,哈哈!!! 难搞哦