3 回答

TA貢獻1851條經驗 獲得超3個贊
就我所知,另一個未記錄的重要事情是,要求StringTokenizer返回定界符以及帶標記的字符串(通過使用構造函數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()方法引入了開銷,但會為您丟棄定界符,但根據我的基準,它仍然快了50%。
添加回答
舉報