カテゴリ: Java 更新日: 2026/01/10

JavaのScannerクラスの使い方を徹底解説!初心者でも簡単に学べる入力処理

Scanner
Scanner

先生と生徒の会話形式で理解しよう

生徒

「Javaでキーボードから入力を受け取る方法を教えてもらえますか?」

先生

「いい質問ですね!JavaではScannerクラスを使うことで、簡単にユーザーからの入力を受け取ることができます。」

生徒

「それは便利ですね!どんな風に使えばいいのですか?」

先生

「それでは、基本的な使い方を一緒に見ていきましょう!」

1. Scannerクラスとは?

1. Scannerクラスとは?
1. Scannerクラスとは?

JavaのScannerクラスは、ユーザーからの入力を簡単に処理するために用いられるクラスです。たとえば、キーボードから文字列や数値を受け取る際に役立ちます。

主に以下のような用途で使われます:

  • 文字列や整数、浮動小数点数などの入力を取得
  • ファイルからのデータ読み取り
  • 正規表現を使ったデータ分割

初心者でもすぐに使える便利なクラスなので、ぜひ覚えておきましょう!

2. Scannerクラスの基本的な使い方

2. Scannerクラスの基本的な使い方
2. Scannerクラスの基本的な使い方

まずはScannerクラスを使って、コンソールからユーザー入力を受け取る基本的な例を見てみましょう。


import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // Scannerオブジェクトの作成
        System.out.print("あなたの名前を入力してください: ");
        String name = scanner.nextLine(); // 文字列入力を取得
        System.out.println("こんにちは、" + name + "さん!");
        scanner.close(); // リソースを解放
    }
}

このプログラムでは、Scannerを使って名前を入力し、入力内容を出力しています。

3. データ型ごとの入力方法

3. データ型ごとの入力方法
3. データ型ごとの入力方法

Scannerクラスでは、データ型に応じた入力メソッドが用意されています。以下に主なメソッドとその使い方を示します。

データ型 メソッド
文字列 nextLine() String input = scanner.nextLine();
整数 nextInt() int input = scanner.nextInt();
浮動小数点数 nextDouble() double input = scanner.nextDouble();

これらを使い分けることで、さまざまなデータ型の入力に対応できます。

4. Scannerクラスの注意点

4. Scannerクラスの注意点
4. Scannerクラスの注意点

いくつかの注意点があります:

  • リソースの解放: プログラム終了後にscanner.close()を呼び出してリソースを解放しましょう。
  • 入力ミスマッチ: 入力が期待するデータ型と異なる場合、InputMismatchExceptionが発生します。
  • 改行の扱い: nextInt()nextDouble()の後にnextLine()を使う場合、改行が残ることがあるので注意が必要です。

以下にこの問題を解決する例を示します。


import java.util.Scanner;

public class ScannerIssueExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("年齢を入力してください: ");
        int age = scanner.nextInt(); // 整数を取得
        scanner.nextLine(); // 改行を消費
        System.out.print("名前を入力してください: ");
        String name = scanner.nextLine(); // 文字列を取得
        System.out.println("年齢: " + age + ", 名前: " + name);
        scanner.close();
    }
}

このように、適切な処理を追加することで問題を防ぐことができます。

5. Scannerクラスを使った応用例

5. Scannerクラスを使った応用例
5. Scannerクラスを使った応用例

応用例として、複数の数値を受け取り、その合計を計算するプログラムを紹介します。


import java.util.Scanner;

public class ScannerAdvancedExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("数値をスペース区切りで入力してください: ");
        String input = scanner.nextLine(); // 一行を取得
        String[] numbers = input.split(" "); // スペースで分割
        int sum = 0;
        for (String num : numbers) {
            sum += Integer.parseInt(num); // 合計を計算
        }
        System.out.println("合計: " + sum);
        scanner.close();
    }
}

このプログラムでは、split()メソッドを活用して入力を処理しています。

6. Scannerクラスで複数行入力を受け取る方法

6. Scannerクラスで複数行入力を受け取る方法
6. Scannerクラスで複数行入力を受け取る方法

ユーザーから複数行にわたってデータを入力してもらいたい場合にも、Scannerクラスは簡単に対応できます。たとえば、特定のキーワードが入力されるまで複数行の文字列を読み取るような仕組みを作ることができます。

一般的には、nextLine()を繰り返し使いながら、終了条件となる文字列を指定します。ユーザーが「end」などの終了ワードを入力するまで、入力を受け取り続けることができます。

この方法は、メモアプリのような複数行文章を扱う場面や、簡易的なチャット入力のような連続入力に役立ちます。

7. Scannerクラスと例外処理の組み合わせ

7. Scannerクラスと例外処理の組み合わせ
7. Scannerクラスと例外処理の組み合わせ

Scannerクラスは便利ですが、ユーザーが誤ったデータを入力するとInputMismatchExceptionなどが発生する可能性があります。これを適切に処理することで、安全に入力を受け付けるプログラムを作ることができます。

例外処理を使うことで、入力ミスが発生した際にもプログラムが停止せず、ユーザーに再入力を促す仕組みを作ることができます。特に数値入力では、誤入力や空入力に対する対応が重要です。

Scannerと例外処理を組み合わせて使うことで、より信頼性の高い入力処理が実現でき、初心者の学習にも役立つ内容になります。

8. Scannerクラスとsplitメソッドの応用

8. Scannerクラスとsplitメソッドの応用
8. Scannerクラスとsplitメソッドの応用

Scannerクラスで入力を受け取ったあと、文字列を分割してデータとして扱いたい場面がよくあります。特に複数の値を一度に入力させたい場合は、split()メソッドと組み合わせることで効率的に処理できます。

例えば、「1 2 3 4」といったスペース区切りの数値だけでなく、カンマ区切りやスラッシュ区切りのような形式にも対応できます。用途によっては正規表現を利用して柔軟な分割も可能です。

このテクニックは、簡単なデータ分析ツールや入力データの整形処理など、Javaの基本学習において非常に活用しやすい機能です。

まとめ

まとめ
まとめ

本記事では、JavaのScannerクラスの基本から応用例までを解説しました。Scannerクラスは、コンソール入力を手軽に扱える便利なクラスで、文字列や数値などのさまざまなデータ型の入力に対応しています。さらに、ファイル操作や正規表現を使ったデータ処理にも応用可能です。

初心者がつまずきやすい「改行の扱い」や「入力ミスマッチ」に関する注意点も、具体例を交えながら解説しました。実際のプログラムで活用する際は、例外処理やリソース管理を意識して、堅牢なコードを書くことを心がけましょう。

さらに応用例では、複数の数値をスペースで区切って入力し、その合計を求めるプログラムを紹介しました。このようにScannerクラスは、初心者にとっても分かりやすく、実用性の高いクラスですので、ぜひこの記事を参考にして学んでみてください。

先生と生徒の振り返り会話

生徒

「この記事を読んで、Scannerクラスの使い方がよくわかりました!特に入力ミスマッチの問題が解決できそうです。」

先生

「それは良かったです!Scannerクラスは使い方を覚えれば非常に便利なので、ぜひ練習を重ねてください。次は、ファイル入力や正規表現を使った応用にも挑戦してみると良いですね。」

生徒

「はい!もっとプログラムを書いて慣れていこうと思います!」

先生

「その意気です。プログラミングは手を動かして学ぶのが一番ですよ。疑問があればいつでも聞いてくださいね!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaでユーザーからの入力を受け取るにはどのクラスを使えばいいですか?

Javaでキーボードからの入力を受け取るには、Scannerクラスを使うのが一般的です。初心者にも使いやすく、文字列や数値などの入力に対応しています。
カテゴリの一覧へ
新着記事
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
SpringのBindingResult完全ガイド!初心者でもわかる入力チェックとgetTargetの使い方
Thymeleafのth:data-*属性を使いこなす!初心者向け完全解説
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.3
Java&Spring記事人気No3
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.4
Java&Spring記事人気No4
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説