Enter キーを押して Java で続行する
この記事では、ユーザーが Enter キーを押すまでコンソールを保留にする方法を説明します。その後、次のメッセージが表示されます。次の例では、Scanner
クラスを使用して 3つの入力を取得し、それらをコンソールに表示します。
Java で追加の nextLine()
を使用して Enter キーを待つ
この例では、Scanner
クラス sc
のオブジェクトを作成します。Scanner
はテキストをスキャンし、int
や String
などのプリミティブ型を解析します。このクラスには、入力操作で使用される多くのメソッドが付属しています。最も一般的に使用されるメソッドは、nextInt()
、nextLine
、nextDouble
などです。
以下の例では、問題がどこにあるかを確認し、次の問題でそれを解決するための手法を使用します。
ここでは、3つの入力を取ります。int
タイプで、次の 2つは String
タイプです。Scanner
クラスを使用して、最初に nextInt()
メソッドを呼び出し、年齢の入力を int
型変数に取得します。次に、名と名前の入力を取得するために、2つの sc.nextLine()
メソッドと 2つの変数を使用してそれらを格納します。最後に、変数のすべての値を出力に表示します。
問題は、ユーザーが age
の値を入力して Enter キーを押したときに発生します。コンソールは firstName
の入力を取得することになっていますが、それをスキップして直接 lastName
に移動します。以下の出力は、問題を明確に示しています。
import java.util.Scanner;
public class EnterContinue {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter your age: ");
int age = sc.nextInt();
System.out.print("Enter your First Name: ");
String firstName = sc.nextLine();
System.out.print("Enter your last Name: ");
String lastName = sc.nextLine();
System.out.println("Your Info:\nAge: " + age + "\nFull Name: " + firstName + " " + lastName);
}
}
出力:
Enter your age: 23
Enter your First Name: Enter your last Name: John
Your Info:
Age: 23
Full Name: John
Process finished with exit code 0
問題がわかったので、解決策と、最初に問題が発生する理由について説明します。int
値を入力として受け取ると、メソッド nextInt()
は int
値を読み取り、改行を読み取ることができません。これが、int
を読んだ後に Enter キーを押すと、コンソールがそれを改行と見なし、次のステートメントにスキップする理由です。
nextInt()
関数の後に追加の nextLine()
メソッドを使用する必要があります。これにより、改行がスキップされ、この問題に対処するために次の行が表示されます。出力では、前の例では不可能だった名を入力できるようになっていることがわかります。
import java.util.Scanner;
public class EnterContinue {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter your age: ");
int age = sc.nextInt();
System.out.print("Enter your First Name: ");
String firstName = sc.nextLine();
sc.nextLine();
System.out.print("Enter your last Name: ");
String lastName = sc.nextLine();
System.out.println("Your Info:\nAge: " + age + "\nFull Name: " + firstName + " " + lastName);
}
}
出力:
Enter your age: 5
Enter your First Name: gfd
Enter your last Name: gfgf
Your Info:
Age: 5
Full Name: gfgf
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn