【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

ST

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

最新の案件情報