【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

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

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*