java.lang一些基本method的原理学习

System.out.println(xxx)里面可以放任意的类型,并能打印出来,当然是指不抱错前提下,因为值都是转型为Object后再打印的。


public void println(Object x) { String s = String.valueOf(x); synchronized (this) { print(s); newLine(); } }


/*里面还加了同步synchronized,防止打印时值发生了变化而产生奇怪的事情*/



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;
    }
不算严格意义上的清除全部空格,只局限于开头和结尾。

eg: 测试类

public String learnTrim(String s){
        int len = s.length();
        int st = 0;
        char[] val = s.toCharArray();    /* avoid getfield opcode */

        while ((st < len) && (val[st] <= ' ')) {
            st++;
            System.out.println("st "+st);
        }
        while ((st < len) && (val[len - 1] <= ' ')) {
            len--;
            System.out.println("len "+len);
        }
        return ((st > 0) || (len < s.length())) ? s.substring(st, len) : String.valueOf(this);
    }

    public static void main(String[] args){
        Regex regex=new Regex();
        System.out.println(regex.learnTrim(" \t \n 12 45 12  78  78 45 13   "));


首先是第一个循环,<=" "清除掉了\t \n 之类的空白字符,当遇上12时,循环终止。

第二个循环,················,当遇上13时,循环终止。

而其中的空格则不做任何处理,若需更细致的处理,可使用.replaceAll()。若需要提取数组,可用String.spilt("regex")再转为数组形式。

return语句是三元操作符,若未检测到任何的空白字符,则输出this即String s





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值