我正在尝试读取文件并提取最大的数字。我想读文件直到最后,但是hasNext()一直给我真实的东西。当我尝试将其更改为hasNextInt()时,即使我的字符为整数,它也永远不会进入。如何摆脱循环并正确读取我的整数?帮助将不胜感激。
int maxScore=0;
int score = 0;
Scanner scan = new Scanner("PacManHighScore");
while(scan.hasNext()) {
if(scan.hasNextInt()) {
score = scan.nextInt();
}
System.out.println(score);
if(score > maxScore) {
maxScore = score;
}
}
scan.close();
问题来源:Stack Overflow
您忘记了跳过非整数值,因此陷入了无限循环。
试试下面的代码。
int maxScore=0;
int score = 0;
Scanner scan = new Scanner("PacManHighScore");
while(scan.hasNext()) {
if(scan.hasNextInt()) {
score = scan.nextInt();
}else{
scan.next();
}
System.out.println(score);
if(score > maxScore) {
maxScore = score;
}
}
scan.close();
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。