2 回答

TA贡献1995条经验 获得超2个赞
这段代码的问题似乎是你的输入没有Integer根据。s.hasNext()检查可以转换为 的输入String。您可能应该s.hasNextInt()在这里使用。或者您可以将其更改s.nextInt()为s.next()将输入作为String. 我提供两种可能的解决方案,然后您可以决定哪一种满足您的要求。
解决方案一:
ArrayList<Integer> list = new ArrayList<>();
while (s.hasNextInt()) {
list.add(s.nextInt());
}
在此解决方案中,您的代码将仅作为Integer输入。因为s.hasNextInt()限制了输入Integer值。如果遇到除该Integer值之外的任何内容,则while循环将退出。
解决方案2:
ArrayList<String> list = new ArrayList<>();
while (s.hasNext()) {
list.add(s.next());
}
在此解决方案中,您的代码将作为String输入。"abc"无论您的输入包含或7或等,它都不会失败。33.32它将把它们全部保存为一个String值。

TA贡献1852条经验 获得超7个赞
所以问题是,每当您从文件中读取任何内容时,它都是string
循环内的下一个格式,您正在获取整数值,而输入是字符串,这就是它给出的原因 InputMismatchException
添加回答
举报