Scanner nextLine - () gelegentlich überspringt Eingang
Hier ist mein code
Scanner keyboard = new Scanner(System.in);
System.out.print("Last name: ");
lastName = keyboard.nextLine();
System.out.print("First name: ");
firstName = keyboard.nextLine();
System.out.print("Email address: ");
emailAddress = keyboard.nextLine();
System.out.print("Username: ");
username = keyboard.nextLine();
und es gibt diese
Last name: First name:
Grundsätzlich überspringt, lassen Sie mich geben Sie lastName
und geht direkt zur Eingabeaufforderung für firstName
.
Allerdings, wenn ich keyboard.next()
statt keyboard.nextLine()
es funktioniert gut. Irgendwelche Ideen, warum?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lass mich raten -- du hast code, der nicht gezeigt ist, verwendet der Scanner über den Versuch, "lastName". In diesem Versuch, du bist nicht der Umgang mit dem end-of-line-token, und so ist es auch Links hängen, nur um verschluckt werden, durch den Aufruf
nextLine()
wo Sie versuchen, denlastName
.Wenn Sie beispielsweise diese:
Wirst du Probleme haben.
One-Lösung, wenn Sie verlassen die EOL-Tokens dangling, schlucken Sie ihn, indem Sie
keyboard.nextLine()
.z.B.,