我使用掃描儀的文件閱讀器出現了一些問題,此時我有點不知所措。嘗試使用掃描儀讀取文件,但 atm 我不斷收到一條java.util.InputMismatchException消息,提示我scanner.next將錯誤的文件放入錯誤的數組中?我不知道為什么會發生這種情況,如果有人可以在我的代碼中指出我搞砸的地方,我將不勝感激。注意:除非它是相關的,否則忽略無用的變量和過長的數組。我正準備把它變成一個類,但一些變量還沒有使用。public static void main(String[] args) throws IOException{ int playersTotal = 0; int entries = 0; int namesIndex = 0; int attackIndex = 0; int blockIndex = 0; String[] playersName = new String[60]; double[] attackScores = new double[60]; double[] blockScores = new double[60]; String file = "roster1.txt"; Scanner scanner = new Scanner(new File(file)); scanner.useDelimiter(" "); while(scanner.hasNextLine()) { playersName[namesIndex] = scanner.next(); System.out.println(playersName[namesIndex]); namesIndex ++; playersName[namesIndex] = scanner.next(); System.out.println(playersName[namesIndex]); namesIndex ++; entries ++; attackScores[attackIndex] = scanner.nextDouble(); System.out.println(attackScores[attackIndex]); attackIndex ++; entries ++; //problem occurs here: blockScores[blockIndex] = scanner.nextDouble(); System.out.println(blockScores[blockIndex]); blockIndex ++; entries ++; playersTotal ++; }}這應該從每行都包含字符串和雙精度的列表中取出每個用空格分隔的條目,并將其保存到正確的數組中。然而,它只在第一行達到第一個雙倍。嘗試讀取下一個 double 會提示線程中的異常。
1 回答

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
嘗試注釋掉為 Scanner 實例指定分隔符的行 scanner.useDelimiter(" ");
并確保您的 Scanner 實例在解析雙精度時使用正確的語言環境(.
分隔符而不是,
)。
Scanner scanner = new Scanner(new File(file).useLocale(Locale.US);
添加回答
舉報
0/150
提交
取消