BohYoh.comトップページへ
Java FAQ
目次

キーボードから読み込んだ値を変数に格納するにはどうすればよいでしょうか。

 キーボードからの数値・文字列の読込みには、いくつかの手続きが必要です。そのテクニックは高度ですから、《決まり文句》として覚えておくとよいでしょう。下のプログラムを見ながら、要点を理解していきましょう(ここに示すテクニックは、Java 1.5以降で利用できます)。

import java.util.Scanner; // [a] class A { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); // [b] stdIn.nextInt() // [c] } }

 各部分の概要は、以下のとおりです。

[a] java.utilパッケージに所属するScannerクラスを単純名で利用するための型インポート宣言です。プログラムの先頭(クラス宣言より前)に置きます。

[b] mainメソッドの先頭(読込みを行う[c]より前)に置きます。System.inは、キーボードと結び付くストリームである標準入力ストリーム(standard input stream)です。

[c] キーボードからint型の整数値を読み込む部分です。メソッド呼出し式stdIn.nextInt()を評価して得られるのが、キーボードから読み込んだ《値》です。入力する値は、int型で表現できる範囲-2,147,483,648~2,147,483,647に収まっていなければなりません。また、アルファベットや記号文字などを打ち込んではいけません。
 以下のようにすると、変数x生成すると同時に、キーボードから読み込んだ整数値で初期化することができます。

int x = stdIn.nextInt();

 キーボードと結び付いた標準入力ストリームSystem.inから文字や数値を取り出す《抽出装置》を表すための変数がstdInです。stdInという変数名は、他の名前に変更しても構いません(その場合は、プログラム中のすべてのstdInを変更することになります)。
 ここまでは、int型の整数値を読み込む例を考えてきました。読込み時に呼び出すメソッドは、型に応じて使い分ける必要があります。読み込む型と、呼び出すメソッドの対応を以下に示します。

メソッド読み込む値
nextBoolean()booleantrueまたはfalse
nextByte()byte-128 ~ +127
nextShort()short-32768 ~ +32767
nextInt()int-2147483648 ~ +2147483647
nextLong()long-9223372036854775808 ~+9223372036854775807
nextFloat()float±3.40282347E+38 ~ ±1.40239846E-45
nextDouble()double±1.79769313486231507E+378 ~ ±4.94065645841246544E-324
next()String文字列(スペース・改行などで区切られる)
nextLine()String1行分の文字列


戻る

BohYoh.comロゴ