0
我有以下行:StringTokenizer的問題
1675 | 29/02/2016 | Jane Smith | James C | James C | 4 | 3
這裏是我的字符串標記代碼:
StringTokenizer stringTokenizer = new StringTokenizer(line, " | ");
int cId = Integer.parseInt(stringTokenizer.nextElement().toString());
String cDate = stringTokenizer.nextElement().toString();
String cName1 = stringTokenizer.nextElement().toString();
String cName2 = stringTokenizer.nextElement().toString();
String cName3 = stringTokenizer.nextElement().toString();
String cName4 = stringTokenizer.nextElement().toString();
String wName = stringTokenizer.nextElement().toString();
String wName2 = stringTokenizer.nextElement().toString();
String cScore1 = stringTokenizer.nextElement().toString();
String cScore2 = stringTokenizer.nextElement().toString();
不過,我不斷收到沒有這樣的元素例外。我的代碼有什麼問題?
我無法重現您的問題:https://ideone.com/PtxgbP。你確定這是你的線包含的? – Pshemo
錯誤的第一件事是:您正在使用StringTokenizer。它是幾個Java版本的遺留類,不應該用於任何新代碼。引用StringTokenizer api:「StringTokenizer是一個遺留類,爲了兼容性的原因保留下來,儘管它在新代碼中的使用不受歡迎。建議任何尋求該功能的人都使用String或java.util.regex包的拆分方法「。 – Stultuske
相關的,來自[StringTokenizer'的文檔](https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html):「_StringTokenizer是保留的遺留類兼容性的原因,儘管它在新代碼中的使用不受歡迎。「如果Oracle甚至告訴你不要使用它,那麼不要...... –