我有一種方法可以將掃描儀返回到具有輸入行的文本文件(我無法正確顯示此文件,但喜歡 - 嗨(新行)This(\ n)Is( \ n)我(\ n))。然後在主要中,我使用掃描儀來計算輸入的行數,然後重置掃描儀。我後來用掃描儀把輸入的行到一個數組(我不想一個ArrayList),但Java的說「java.util.NoSuchElementException:沒有找到行」 ......Java中的掃描儀問題
while(scanner.hasNextLine()){
numOfStrings++;
scanner.nextLine();
}
scanner.reset();
String[] stringsOfInput = new String[numOfStrings];
for(int i = 0; i < numOfStrings; i++){
String s = scanner.nextLine(); //returns "No line found" error message
stringsOfInput[i] = s;
}
有誰知道如何解決這個問題,所以它應該做什麼?
'復位()'不會做你認爲它 - 從[的JavaDoc](http://docs.oracle.com/javase/7 /docs/api/java/util/Scanner.html#reset%28%29) - _重置掃描器會丟棄所有可能已被調用'useDelimiter(java.util.regex.Pattern)'所改變的顯式狀態信息' ,'useLocale(java.util.Locale)'或'useRadix(int)'._復位'Scanner'不能倒回數據流。 –
我想你需要另一臺掃描儀來保存線路,重置將不會從開始 – Evans