java String类 trim() 方法源码分析
public String trim() {
int arg0 = this.value.length; //得到此字符串的长度
int arg1 = 0; //声明一个int 值,并赋值为0
char[] arg2; //声明一个char数组
for (arg2 = this.value; arg1 < arg0 && arg2[arg1] <= 32; ++arg1) {
//将此字符数组赋值给arg2字符数组(java字符串底层是字符数组,这个字符数组就是String类的value属性);
//为什么小于等于32,请参看ASCII码表,ASCII表32表示一个空格,32以下有tab制表符, 换行符, 回车符,退格等。
//如果一个字符串为“ 123 ”,那么这个方法运行完毕,arg1的值会被赋值为1.
;
}
while (arg1 < arg0 && arg2[arg0 - 1] <= 32) {
--arg0;
//如果一个字符串为“ 123 ”,那么这个方法运行完毕,arg0会被赋值为4
}
return arg1 <= 0 && arg0 >= this.value.length ? this : this.substring(arg1, arg0);
//arg1==1,所以走后面。this.substring(1,4)
//含头不含尾,结果为“123”
}