【Java】Scannerクラスを使って入力した値を取得する!

入力した値を取得するにはScannerクラスを使用します。

Scannerクラスはjava.utilというパッケージの中にあり、Scannerを使用すれば、int、long、double、byte、float、shortなどのプリミティブ型でユーザーから入力を取得することができます。

今回はScannerクラスを使って以下の場合で入力した値を取得していきます。

⚫︎ 入力した値の文字を取得する場合
⚫︎ 入力した値の文字列を取得する場合
⚫︎ 入力した値の数値を取得する場合
⚫︎ 入力した値の真偽値を取得する場合

Scannerクラスとは

Scannerクラスとは入力値を取得する時に使うjava.utilパッケージの中に存在するクラスとなります。

Scannerクラスの書き方

Scannerクラスの構文は下記となります。

まずは、パッケージをインポートします。

また、ユーザーから入力を読み取るJavaスキャナーのインスタンスを取得するには、Scannerクラスのコンストラクターで入力ストリーム(System.in)を渡す必要があります。

文字列を解析するJava Scannerのインスタンスを取得するには、Scannerクラスのコンストラクターで文字列を渡す必要があります。

Scannerクラスの入力タイプ

Scannerクラスは、nextInt、nextByte、nextShort、next、nextLine、nextDouble、nextFloat、nextBooleanなどの値のタイプを返すnextXXXメソッドを提供します。
スキャナーから単一の文字を取得することもでき、単一の文字を返すnext().charAt(0)メソッドで呼び出すことができます。
他の型を読み込むには、以下の表をご覧ください。

メソッド 説明
nextBoolean ユーザーからboolean型を読み取る。
nextByte ユーザーからbyte型を読み取る。
nextDouble ユーザーからdouble型を読み取る。
nextFloat ユーザーからfloat型を読み取る。
nextInt ユーザーからint型を読み取る。
nextLine ユーザーからString型を読み取る。
nextLong ユーザーからlong型を読み取る。
nextShort ユーザーからshort型を読み取る。
next().charAt(0) ユーザーからの文字列の最初の文字を読み取る。

入力した値を取得するサンプルコード

入力した値を取得するサンプルコードを見てみます。

文字列の最初の文字を取得する場合

文字列の最初の文字を取得するにはnextメソッドのcharAt(インデックス)を使用します。

出力結果

入力した値:あいうえお
取得する値:あ

文字列を取得する場合

文字列を取得するにはnextLineメソッドを使用します。

出力結果

ユーザーネームを入力してください。
フライテック
ユーザー名:フライテック

数値を取得する場合

数値を取得するにはnext数値型メソッドを使用します。
int型ならnextIntメソッド、float型ならnextFloatメソッドを使用します。

出力結果

入力したint値:13
入力したdouble値:13.678
取得する値:13
取得する値:13.678

真偽値を取得する場合

真偽値を取得するにはnextBooleanメソッドを使用します。

出力結果

入力したboolean値:true
取得する値:true

Scannerクラスを使った実践的なサンプルコード

入力値の合計を求める

入力した値の合計を求めてみます。

出力結果

入力した値
46
67
78
67
56
1個目の点数 = 46
2個目の点数 = 67
3個目の点数 = 78
4個目の点数 = 67
5個目の点数 = 56
合計値は314
平均値は 62.8

今日のポイント

Scannerクラスで入力した値を取得

⚫︎ キーボードなど入力した値を取得する場合にはScannerクラスを使用する

⚫︎ 文字列の先頭の文字を取得する場合はnextメソッドのcharAtメソッドを使用する

⚫︎ 文字列を取得する場合はnextLineメソッドを使用する

⚫︎ 数値を取得する場合ははnext数値型メソッドを使用する
(int型ならnextIntメソッド、float型ならnextFloatメソッド)

⚫︎ 真偽値を取得する場合ははnextBooleanメソッドを使用する

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し