私の問題は、をSystem.in
にして複数のユーザー入力文字列を取得し、文字列配列にタプルを格納することに関連しています。Scannerを使用してSystem.inから複数の文字列を取得する
同様の問い合わせ:Reading multiple Scanner inputs
しかし、彼らはキャッチ/しようと使用していないと、そのコードが動作しているようです。
私のコードを実行しているとき、私はラインの方を向いてjava.util.NoSuchElementException
を得る: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]);
}
問題がある可能性がありますか?
入力を読み取るたびに「スキャナ」を作成しないでください。それを一度作成してください。 – Jeremy
2回目のtryとcatchを削除して、すべてを1つのブロックに入れてください。 – Mir
また、hasNextLine()を使用してください。あなたの例外を防ぐはずですが、スキャナを使用する方法は適切な方法ではありません。 –