Javaでキーボードからの入力を行うに際して、キーボードからの入力を行うためのクラスとメソッドを作成する

Javaでキーボードからの入力を行うに際して、キーボードからの入力を行うためのクラスとメソッドを作成する

練習問題3

 Javaでキーボードからの入力を行う場合は、通常、以下のように行う必要があります。

キーボードからの入力の方法(整数の場合)

Public static void main(String[] args) throws IOException

{
BufferedReader br
= new BufferedReader( new InputStreamReader( System.in ) );

 

System.out.print("整数を入力 > ");
int n = Integer.parseInt( br.readLine() );

 

}

 

しかし、このように記述するのは多少めんどうですし、BufferdReaderの行を先頭に用意したり、1回の入力ごとに、入力をうながすメッセージを出力する行( System.out.print 部分 )と、実際の入力処理の行の2行を記述しなくてはならないため、プログラムが煩雑になる感じがします。

 

そこで、キーボードからの入力を行うためのクラス「KeyBoard」と、次ページの各メソッドを作成し、下図のメインメソッドのようなことが行えるようにして下さい。(このようなクラスを作っておけば、次回からこのクラスを使ってキーボード入力がシンプルに行えるようになります。)

 

 

実行画面

整数を入力 > 5

実数を入力 > 3.4
文字を入力 > D
文字列を入力 > ABCD

 

入力された整数は5です。
入力された実数は3.4です
入力された文字はDです。
入力された文字列はABCDです。

 

作成する「KeyBord」クラスの構成

 

  • private static BufferdReader br = ・・・・

    → キーボード入力の際にこれまで準備していたBufferdReader型の変数。
    ここではstaticメンバにするので、宣言と同時に初期化が必要。
    (staticメンバは実体と無関係なのでコンストラクタで初期化ができないため)

     

  • public static int inputInt(String message)

    → 引数messageに指定された内容を、入力を促がすメッセージとして、
    整数をキーボードから入力するメソッド。

     

  • public static double inputDbl(String message)
  • public static char inputChr(String message)
  • public static String inputStr(String message)

    → 上記のメソッドの実数、文字、文字列版

     

    作成するメインメソッド

    public static void main(String[] args) throws IOException

    {

     

    int n = KeyBoard.inputInt("整数を入力");
    double d = KeyBoard.inputDbl("実数を入力");
    char c = KeyBoard.inputChr("文字を入力");
    String s = KeyBoard.inputStr("文字列を入力");

     

    System.out.println();
    System.out.println("入力された整数は" + n + "です。" );
    System.out.println("入力された実数は" + d + "です。" );
    System.out.println("入力された文字は" + c + "です。" );
    System.out.println("入力された文字列は" + s + "です。" );
    }

  • 解答例

    import java.io.*;

    class KeyBoard
    {
    private static BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
    public static int inputInt(String message) throws IOException
    {
    System.out.print(message + " > ");
    return Integer.parseInt( br.readLine() );
    }

     

    //実数の入力を行うメソッド
    public static double inputDbl(String message) throws IOException
    {
    System.out.print(message + " > ");

     

    return Double.parseDouble( br.readLine() );
    }
    public static char inputChr(String message) throws IOException
    {
    System.out.print(message + " > ");
    String s = br.readLine() ;
    return s.charAt(0);
    }
    public static String inputStr(String message) throws IOException
    {
    System.out.print(message + " > ");
    return br.readLine();
    }
    }

    import java.io.*;

    public class ren13_3
    {
    public static void main(String[] args) throws IOException
    {
    int n = KeyBoard.inputInt("整数を入力");
    double d = KeyBoard.inputDbl("実数を入力");
    char c = KeyBoard.inputChr("文字を入力");
    String s = KeyBoard.inputStr("文字列を入力");

     

    System.out.println();
    System.out.println("入力された整数は" + n + "です。" );
    System.out.println("入力された実数は" + d + "です。" );
    System.out.println("入力された文字は" + c + "です。" );
    System.out.println("入力された文字列は" + s + "です。" );
    }
    }