Mein Problem hängt damit zusammen, mehrere Benutzereingabezeichenfolgen unter Verwendung von Scanner
unter System.in
abzurufen, um ein Benutzername/Kennwort-Tupel abzurufen und das Tupel in einem String-Array zu speichern.Ergreifung mehrerer Zeichenfolgeneingaben von System.in mit Hilfe des Scanners
ähnliche Anfrage: Reading multiple Scanner inputs
sie jedoch nicht verwenden try/catch und ihr Code scheint zu funktionieren.
Wenn mein Code ausgeführt wird, erhalte ich eine java.util.NoSuchElementException
in Richtung der Linie zeigt: login[1] = input.nextLine();
public void getPassword() throws Exception {
/* Create a string array to hold username and password */
String[] login = {"a", "b"};
System.out.println("Username:\n");
try (Scanner input = new Scanner(System.in)) {
login[0] = input.nextLine();
} catch (NoSuchElementException e) {
e.printStackTrace();
}
System.out.println("Password:\n");
try (Scanner input = new Scanner(System.in)) {
login[1] = input.nextLine();
} catch (NoSuchElementException e) {
e.printStackTrace();
}
System.out.println("username: " + login[0] + "\npassword: " + login[1]);
}
Was könnte das Problem sein?
Erstellen Sie nicht jedes Mal einen 'Scanner', wenn Sie Eingaben lesen möchten. Erstellen Sie es einmal. – Jeremy
Sollte ich den zweiten Versuch entfernen und fangen und alles in einen Block stecken? – Mir
auch, verwenden Sie hasNextLine(). das sollte Ihre Ausnahme verhindern, aber die Art, wie Sie die Scanner verwenden, ist nicht der richtige Weg. –