【Java】指定した型の値でキーボード入力を読み込む方法

キーボード読み込みの型
  • このエントリーをはてなブックマークに追加
  • Pocket

Javaでキーボード入力を読み取るときScannerクラスを利用する。

しかし、通常使うnextメソッドを使うとすべて文字列として認識してしまう。このページでは、キーボード入力の型を指定する方法についてお伝えした。

特定の型のみ読み込む

Javaでキーボードから入力された文字や数字を読み取るには、Scannerクラスのnextメソッドを使う。

nextメソッドでは何を入力しても、例えば数値「123」と入力しても、全てを文字列として認識して出力する。そのため、何を入力しても問題ないのだが、数値だけを入力したい場合などは困ってしまう。Scannerクラスにはそういった場合に数値だけを入力できるメソッドが用意されている。

数値型のnextIntメソッド

まず、入力された値を数値の型「int」として出力するScannerクラスのnextIntメソッドをみてみよう。 

①でnextIntメソッド使って読み込んだ値を変数numに保存している。nextメソッドを使うときと比べてみよう。nextメソッドを使うときは以下のように書く。

String num = scanner.next();

以下のnextIntを使うときとnextメソッドを使うときの違いは、まずメソッド名(nextとnextInt)の違いと読み込んだ値を格納する変数の型が違うという2点だ。nextIntを使うときは保存する変数の型をStringなどにするとコンパイルエラーになる。

int num = scanner.nextInt();

sampleAクラスを実行して、「1234567」と入力して、改行した場合の実行結果は以下のようになる。

int以外のnext~メソッド

サンプルプログラムのsampleAクラスではint型のnextIntメソッドの処理を確認したが、Scannerクラスにはint型以外の型を指定できるメソッドが用意されている。

小数点の型のみを指定するnextDoubleメソッドや、trueかfalseのnextBooleanメソッドなど状況に応じて型を指定するものなどがある。

要するにそのまま書けばいい。  

型違いのエラーに注意

nextIntメソッドなど型を指定する読み込みは、int型の数値以外の値を入力されたときを考えてプログラミングしなければならない。先ほどのsampleAクラスを実行して「あいうえお」と入力してみよう。

すると以下のようなエラーになる。

このエラーはsampleAクラスのnexIntメソッドで数値以外が入力されたので発生したエラーだ。このように指定した型以外が入力されるとエラーでプログラムが終了してしまうので、try catchでエラーが発生してもプログラムが終了しないようにしなければならない。

try catchを追加したのが以下のサンプルコードだ。

sampleBクラスを実行して、「あいうえお」と入力して、改行した場合の実行結果は以下のようになる。

まとめ

このページではキーボード入力の際に、型を指定する方法についてお伝えしてきた。

Javaは厳密な言語なので、こういった指定にも方法が用意されている。数字などとして読み込みたいときのために認識しておこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する