2 回答

TA貢獻1995條經(jīng)驗 獲得超2個贊
這段代碼的問題似乎是你的輸入沒有Integer根據(jù)。s.hasNext()檢查可以轉(zhuǎn)換為 的輸入String。您可能應(yīng)該s.hasNextInt()在這里使用。或者您可以將其更改s.nextInt()為s.next()將輸入作為String. 我提供兩種可能的解決方案,然后您可以決定哪一種滿足您的要求。
解決方案一:
ArrayList<Integer> list = new ArrayList<>();
while (s.hasNextInt()) {
list.add(s.nextInt());
}
在此解決方案中,您的代碼將僅作為Integer輸入。因為s.hasNextInt()限制了輸入Integer值。如果遇到除該Integer值之外的任何內(nèi)容,則while循環(huán)將退出。
解決方案2:
ArrayList<String> list = new ArrayList<>();
while (s.hasNext()) {
list.add(s.next());
}
在此解決方案中,您的代碼將作為String輸入。"abc"無論您的輸入包含或7或等,它都不會失敗。33.32它將把它們?nèi)勘4鏋橐粋€String值。

TA貢獻1852條經(jīng)驗 獲得超7個贊
所以問題是,每當(dāng)您從文件中讀取任何內(nèi)容時,它都是string
循環(huán)內(nèi)的下一個格式,您正在獲取整數(shù)值,而輸入是字符串,這就是它給出的原因 InputMismatchException
添加回答
舉報