您的位置:首页 > 编程语言 > Java开发

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

2017-07-15 12:56 253 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: