3 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個贊
在Java 7中拆分只是為該輸入調(diào)用indexOf,請參閱參考資料。拆分應(yīng)該非???,接近indexOf的重復(fù)調(diào)用。

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個贊
就我所知,另一個未記錄的重要事情是,要求StringTokenizer返回定界符以及帶標(biāo)記的字符串(通過使用構(gòu)造函數(shù)StringTokenizer(String str, String delim, boolean returnDelims))還可以減少處理時間。因此,如果您正在尋找性能,我建議您使用類似以下的方法:
private static final String DELIM = "#";
public void splitIt(String input) {
StringTokenizer st = new StringTokenizer(input, DELIM, true);
while (st.hasMoreTokens()) {
String next = getNext(st);
System.out.println(next);
}
}
private String getNext(StringTokenizer st){
String value = st.nextToken();
if (DELIM.equals(value))
value = null;
else if (st.hasMoreTokens())
st.nextToken();
return value;
}
盡管getNext()方法引入了開銷,但會為您丟棄定界符,但根據(jù)我的基準(zhǔn),它仍然快了50%。
添加回答
舉報