模仿String的trim()方法,实现一个自己的myTrim(String str)方法
首先看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;
}
实现自己的trim(String str)
public static String myTrim(String str) {
if (str==null) {
return null;
}
char[] val = str.toCharArray();
int len = val.length;
int st = 0;
while ((st < len) && (val[st] == ' ')) {
st++;
}
while ((st < len) && (val[len - 1] == ' ')) {
len--;
}
return (st>0 || len < val.length)?str.substring(st,len):str;
}
关键是String是不可变类,数据存储在它的char[] value中,这么获取这个数据呢?
String提供了一个toCharArray()的方法,这就是突破口。拿到了数据,我们就可以访问里面的元素了。