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制表符,\n换行符,\r回车符,\b退格等。

   //如果一个字符串为“ 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”
    }

posted @ 2017-04-21 20:26  zhuangrunwei  阅读(1058)  评论(0编辑  收藏  举报