958 Stimmen

Der Scanner überspringt nextLine() nach der Verwendung von next() oder nextFoo()?

Ich verwende die Scanner Methoden nextInt() y nextLine() zum Lesen von Eingaben.

Das sieht folgendermaßen aus:

System.out.println("Enter numerical value");    
int option;
option = input.nextInt(); // Read numerical value from input
System.out.println("Enter 1st string"); 
String string1 = input.nextLine(); // Read 1st string (this is skipped)
System.out.println("Enter 2nd string");
String string2 = input.nextLine(); // Read 2nd string (this appears right after reading numerical value)

Das Problem ist, dass nach der Eingabe des Zahlenwerts die erste input.nextLine() wird übersprungen und die zweite input.nextLine() ausgeführt wird, so dass meine Ausgabe wie folgt aussieht:

Enter numerical value
3   // This is my input
Enter 1st string    // The program is supposed to stop here and wait for my input, but is skipped
Enter 2nd string    // ...and this line is executed and waits for my input

Ich habe meine Anwendung getestet und es sieht so aus, als läge das Problem in der Verwendung von input.nextInt() . Wenn ich es lösche, dann werden beide string1 = input.nextLine() y string2 = input.nextLine() werden so ausgeführt, wie ich es möchte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X