【Java】Scannerクラスを使って入力した値を取得する!
入力した値を取得するにはScannerクラスを使用します。
Scannerクラスはjava.utilというパッケージの中にあり、Scannerを使用すれば、int、long、double、byte、float、shortなどのプリミティブ型でユーザーから入力を取得することができます。
今回はScannerクラスを使って入力した値を取得する方法について以下の内容で解説していきます。
⚫︎ 入力した値の文字を取得する場合
⚫︎ 入力した値の文字列を取得する場合
⚫︎ 入力した値の数値を取得する場合
⚫︎ 入力した値の真偽値を取得する場合
目次
Scannerクラスとは
Scannerクラスとは入力値を取得する時に使うjava.utilパッケージの中に存在するクラスとなります。
Scannerクラスの書き方
Scannerクラスの構文は下記となります。
1 |
import java.util.Scanner; |
まずは、パッケージをインポートします。
1 |
Scanner scanner = new Scanner(System.in); |
また、ユーザーから入力を読み取るJavaスキャナーのインスタンスを取得するには、Scannerクラスのコンストラクターで入力ストリーム(System.in)を渡す必要があります。
1 |
Scanner scanner = new Scanner("フライテックへようこそ。" ); |
文字列を解析する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(インデックス)を使用します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.Scanner; class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String input = "あいうえお"; System.out.println("入力した値:" + input); char scan = scanner.next().charAt(0); System.out.println("取得する値:" + scan); } } |
出力結果
入力した値:あいうえお
取得する値:あ
文字列を取得する場合
文字列を取得するにはnextLineメソッドを使用します。
例
1 2 3 4 5 6 7 8 9 10 11 |
import java.util.Scanner; // パッケージをインポート class MyClass { public static void main(String[] args) { Scanner myObj = new Scanner(System.in); // スキャナーオブジェクトの生成 System.out.println("ユーザーネームを入力してください。"); String userName = myObj.nextLine(); // userNameを読み込む。 System.out.println("ユーザー名:" + userName); // userNameを出力。 } } |
出力結果
ユーザーネームを入力してください。
フライテック
ユーザー名:フライテック
数値を取得する場合
数値を取得するにはnext数値型メソッドを使用します。
int型ならnextIntメソッド、float型ならnextFloatメソッドを使用します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import java.util.Scanner; class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int inputI = 13; double inputD = 13.678; System.out.println("入力したint値:" + inputI); System.out.println("入力したdouble値:" + inputD); // Int型 int scanI = scanner.nextInt(); // Double型 double scanD = scanner.nextDouble(); System.out.println("取得する値:" + scanI); System.out.println("取得する値:" + scanD); } } |
出力結果
入力したint値:13
入力したdouble値:13.678
取得する値:13
取得する値:13.678
真偽値を取得する場合
真偽値を取得するにはnextBooleanメソッドを使用します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.Scanner; class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean inputB = true; System.out.println("入力したboolean値:" + inputB); // Boolean型 boolean scanB = scanner.nextBoolean(); System.out.println("取得する値:" + scanB); } } |
出力結果
入力したboolean値:true
取得する値:true
Scannerクラスを使った実践的なサンプルコード
入力値の合計を求める
入力した値の合計を求めてみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import java.util.Scanner; class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int point[] = {46, 67, 78, 67, 56}; int sum = 0; System.out.print("入力した値"); System.out.print("\n"); for(int j:point) { System.out.print(j); System.out.print("\n"); } for (int i = 0; i < 5; i++) { int scanI = scanner.nextInt(); System.out.print(i + 1 + "個目の点数 = " + scanI); System.out.print("\n"); sum = sum + scanI; } System.out.println("合計値は" + sum); System.out.print("平均値は " + (double)sum / 5); } } |
出力結果
入力した値
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メソッドを使用する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。