好吧,据
while(input.hasNext()) { if(input.hasNextInt()) { sum += input.nextInt(); }}如果此令牌不是
int,扫描仪将不会使用下一个令牌。
int k=0;while(input.hasNext()) { if(input.hasNextInt()) { sum += input.nextInt(); } else { System.err.println("What ? It's not an integer..."); if ( k < 1 ) { System.err.println("I'm gonna try again !"); k++; } else { System.err.println("'"+input.next()+"' it's definitively not an integer"); k=0; } }}最后,有很多解决方案,例如:
- 修改您的输入文件,删除所有非整数令牌
- 使用以下命令消费非整数令牌
Scanner::next()
- 桑耶夫的答案



