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