Javaでキーボードからの入力を行うに際して、キーボードからの入力を行うためのクラスとメソッドを作成する
練習問題3
Javaでキーボードからの入力を行う場合は、通常、以下のように行う必要があります。キーボードからの入力の方法(整数の場合)
{
BufferedReader br
= new BufferedReader( new InputStreamReader( System.in ) );
System.out.print("整数を入力 > ");
int n = Integer.parseInt( br.readLine() );
}
しかし、このように記述するのは多少めんどうですし、BufferdReaderの行を先頭に用意したり、1回の入力ごとに、入力をうながすメッセージを出力する行( System.out.print 部分 )と、実際の入力処理の行の2行を記述しなくてはならないため、プログラムが煩雑になる感じがします。
そこで、キーボードからの入力を行うためのクラス「KeyBoard」と、次ページの各メソッドを作成し、下図のメインメソッドのようなことが行えるようにして下さい。(このようなクラスを作っておけば、次回からこのクラスを使ってキーボード入力がシンプルに行えるようになります。)
実行画面
実数を入力 > 3.4
文字を入力 > D
文字列を入力 > ABCD
入力された整数は5です。
入力された実数は3.4です
入力された文字はDです。
入力された文字列はABCDです。
作成する「KeyBord」クラスの構成
→ キーボード入力の際にこれまで準備していたBufferdReader型の変数。
ここではstaticメンバにするので、宣言と同時に初期化が必要。
(staticメンバは実体と無関係なのでコンストラクタで初期化ができないため)
→ 引数messageに指定された内容を、入力を促がすメッセージとして、
整数をキーボードから入力するメソッド。
→ 上記のメソッドの実数、文字、文字列版
作成するメインメソッド
{
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 + "です。" );
}
解答例
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();
}
}
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 + "です。" );
}
}