JDK源码之解读String最终类的trim()方法实现原理
把目标字符串str转换成字节数组,从左到有循环该字节数组,若为空,则继续循环,否则,跳出循环。
从右到做循环该字节数组,若为空,则长度减一,否则,结束循环。
获得字节数组起始非空位置和长度,组成新的字节数组,转换成新的字符串newstr. 源码如下:
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; }博主自己重写了下该方法:/** * rewrite trim * @param str * @return */ PRivate static String trim(String str){ 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; }
新闻热点
疑难解答