split(regex, limit)
indexOf(str)
split使用正則分割穷绵。
開始以為正則慢于indexOf躬审,其實不對奏夫。
后來學(xué)習(xí)字符串查找的3個實現(xiàn):樸素算法薛匪、正則DFA月匣、KMP钻洒,方知jdk如此實現(xiàn)很有道理奋姿。正則DFA和KMP的時間復(fù)雜度是O(n),而樸素是O(m(n-m+1))航唆。
java實現(xiàn)的split在regex長度是1且不是正則的內(nèi)置字符胀蛮,或長度是2但其實是轉(zhuǎn)義字符時會直接使用indexOf,因為此時m=1糯钙。
所以查找時盡量用正則或KMP粪狼,而不是indexOf。