public String trim() {
int len = count;
int st = 0;
int off = offset; /* avoid getfield opcode */
char[] val = value; /* avoid getfield opcode */ while ((st < len) && (val[off + st] <= ' ')) {
st++;
}
while ((st < len) && (val[off + len - 1] <= ' ')) {
len--;
}
return ((st > 0) || (len < count)) ? substring(st, len) : this;
}val[off + st] <= ' '为什么是这个条件?
‘ ’==32
那比32小的char值应该不少的吧?
看那个判断
中间的空白也要算进st++里面?
st++;
}
这一段是取首个非空白字符的下标 while ((st < len) && (val[off + len - 1] <= ' ')) {
len--;
}
这段是取从首个非空白字符到最后一个非空白字符的长度楼主这是什么版本的source,感觉与我的不一样