I\'m apparently facing an infinite loop on while(input.hasNext())
, as in following code
File file = new File(\"data.txt\");
Scanner input = new Sca
Well, according to
while(input.hasNext()) {
if(input.hasNextInt()) {
sum += input.nextInt();
}
}
Your scanner will not consume the next token if this token isn't an int
, you can hilight this behavior with something like
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;
}
}
}
Finally, there are many solutions, for example :
Scanner::next()