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; }
新聞熱點
疑難解答