Java でユーザ入力を取得する
この記事では、Java でユーザ入力を取得するための最良の方法について説明します。多くの方法がありますが、それらの方法のいくつかはすでに非推奨となっていますので、それらを避けることにします。
Java でユーザ入力を取得するための Scanner
の使い方
目的を達成するために Scanner
を使用することができます。このクラスのオブジェクトを作成し、そのコンストラクタに System.in
を渡す必要があります。
次のステップは、Scanner
オブジェクトを使い、以下のメソッドのいずれかを呼び出すことです。各メソッドは異なるデータ型の入力値を受け取ります。
メソッド | 説明 |
---|---|
next() |
文字列値 |
nextInt() |
整数値 |
nextByte() |
バイト値 |
nextLong() |
長整数値 |
nextFloat() |
浮動小数点値 |
nextDouble() |
倍精度浮動小数点 |
以下の例では、整数値を受け取る nextInt()
メソッドを使用します。
例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner inputReader = new Scanner(System.in);
System.out.println("Enter a number: ");
int number = inputReader.nextInt();
System.out.println("Your entered number was: " + number);
}
}
出力:
Enter a number:
454
Your entered number was: 454
Java でユーザの入力を取得するための BufferedReader
ユーザからの入力を取得できる別のクラスがあります。BufferedReader
は文字ストリームを使って入力からテキストを読み取るのに対して、Scanner
はプリミティブ型の入力の場合に利用することができます。
つまり、BufferedReader
クラスには nextInt()
のようなメソッドはなく、readLine()
メソッドがあります。
下の例では、入力を int
として受け取っています。入力を読み込んでから Integer.parseInt(String)
を用いて int
型に変換しなければならません。外部入力デバイスがない場合は IOException が発生する可能性があるので、try-catch
ブロックで文を囲む必要があります。
例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
System.out.println("Please enter a number: ");
String s = br.readLine();
int i = Integer.parseInt(s);
System.out.println("Your entered number was: " + i);
} catch (IOException e) {
e.printStackTrace();
}
br.close();
}
}
出力:
Please enter a number:
454
Your entered number was: 454
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