カテゴリ: Java 更新日: 2026/03/21

JavaのScannerクラスとnextメソッドの使い方を徹底解説!初心者でもわかる入力処理

Scannerのnextメソッド
Scannerのnextメソッド

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

生徒

「Javaでユーザーからの入力を受け取る方法を知りたいです。」

先生

「JavaではScannerクラスを使えば、キーボードからの入力を簡単に処理できますよ。」

生徒

「それってどのように使うんですか?具体例が見たいです。」

先生

「では、基本的なScannerクラスの使い方とnextメソッドについて説明しましょう。」

1. Scannerクラスとは?【基本概念と仕組み】

「1. Scannerクラスとは?【基本概念と仕組み】」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. Scannerクラスとは?【基本概念と仕組み】
1. Scannerクラスとは?【基本概念と仕組み】

JavaのScanner(スキャナ)クラスは、キーボードから入力した文字や数値、またはファイル内のデータを読み取るために用意された便利なツールです。Javaでプログラムと対話する(ユーザーが値を入力して結果を変える)ための最も標準的な方法として、初心者の方にまず覚えてほしい機能です。java.utilパッケージに含まれているため、使用する際はプログラムの冒頭でインポートする必要があります。

プログラミング未経験の方へ: 「スキャナ」という名前の通り、入力された情報を「読み取って分析する装置」だとイメージすると分かりやすいですよ。

Scannerクラスでできること

このクラスを使うと、以下のような処理が驚くほど簡単に実装できます:

  • 多様なデータ型の読み取り: 文字列だけでなく、整数(int)や小数(double)など、入力内容を自動で判別して取得できます。
  • データの自動分割: スペース(空白)や改行を区切り文字として認識し、長い文章から特定の単語だけを抜き出すことが可能です。
  • 直感的なコード記述: 複雑なストリーム処理を意識せず、シンプルな命令だけでユーザーとのやり取りを構築できます。

最もシンプルなScannerの基本構造

まずは、「キーボードから文字を受け取る準備」をするための最小限のコードを見てみましょう。


import java.util.Scanner; // 1. Scannerを使うための準備

public class ScannerBasicExample {
    public static void main(String[] args) {
        // 2. Scannerのインスタンス(実体)を作成
        // System.in は「キーボードからの入力」を意味します
        Scanner scanner = new Scanner(System.in);

        System.out.println("Scannerの準備が完了しました。");
        
        // 使い終わったら閉じるのがJavaのルールです
        scanner.close();
    }
}

このコード自体は何も表示されませんが、new Scanner(System.in)という記述が「ユーザーの入力を待ち受ける魔法の杖」を作成していると考えてください。この杖(インスタンス)を使って、次の章から解説するnextメソッドなどを呼び出し、実際のデータを取り出していきます。

2. nextメソッドの基本的な使い方:単語単位での入力取得

2. nextメソッドの基本的な使い方:単語単位での入力取得
2. nextメソッドの基本的な使い方:単語単位での入力取得

Javaでユーザーがキーボードから入力した文字を受け取る際、最もシンプルで頻繁に使われるのがnextメソッドです。このメソッドの最大の特徴は、「スペース(空白)や改行までを一つの区切り」として読み取ることです。

例えば、「プログラミング 学習」と入力した場合、最初の「プログラミング」という単語だけをスマートに取り出すことができます。プログラミング未経験の方でも直感的に使いやすい、基本的な記述方法を見てみましょう。

サンプルプログラム:入力された最初の単語を表示する


import java.util.Scanner;

public class ScannerNextExample {
    public static void main(String[] args) {
        // キーボード入力を受け取る準備
        Scanner scanner = new Scanner(System.in);

        System.out.print("お名前(名字と名前の間にスペースを入れて)を入力してください: ");

        // next()メソッドで最初の「名字」だけを取得
        String firstName = scanner.next();

        System.out.println("こんにちは、" + firstName + "さん!");
        System.out.println("※nextメソッドはスペースの後の文字は読み飛ばします。");

        // 使った後は忘れずに閉じる
        scanner.close();
    }
}

ここがポイント!

  • トークン(単語)の取得: next()は、入力された文字列を「トークン」と呼ばれる単位で分割して処理します。デフォルトでは、空白やタブ、改行がその区切りになります。
  • 待機状態: プログラムがscanner.next()の行に到達すると、ユーザーが何かを入力してEnterキーを押すまで一時停止(待機)します。
  • 初心者へのアドバイス: 「文章全体」ではなく「名前だけ」「性別だけ」といった、短いキーワードを一つずつ取得したい場合に非常に便利なメソッドです。

3. nextメソッドとnextLineメソッドの違い

3. nextメソッドとnextLineメソッドの違い
3. nextメソッドとnextLineメソッドの違い

初心者が混乱しやすいのが、nextメソッドとnextLineメソッドの違いです。それぞれの違いを以下にまとめました:

メソッド 動作 主な用途
next() スペースや改行で区切られた単語を取得 単語単位の入力
nextLine() 改行までの全ての文字列を取得 行全体の入力

例えば、以下のような入力を処理する場合、それぞれのメソッドで結果が異なります。

入力例: Hello Java World

  • next(): 「Hello」を取得
  • nextLine(): 「Hello Java World」を取得

4. Scannerクラスの便利な使い方

「4. Scannerクラスの便利な使い方」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. Scannerクラスの便利な使い方
4. Scannerクラスの便利な使い方

Scannerクラスはnextメソッド以外にも便利な機能を持っています。例えば、数値を取得する場合、nextIntnextDoubleメソッドを使用します。

以下は、数値入力の例です:


import java.util.Scanner;

public class ScannerNumericExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("整数を入力してください: ");
        int number = scanner.nextInt(); // 整数を取得
        System.out.println("入力された数値: " + number);
        scanner.close();
    }
}

このプログラムでは、ユーザーが入力した整数を取得し、それを出力します。

5. Scannerクラス使用時の注意点

5. Scannerクラス使用時の注意点
5. Scannerクラス使用時の注意点

最後に、Scannerクラスを使用する際の注意点をいくつか挙げます:

  • リソースの解放: scanner.close()を呼び出してリソースを適切に解放する。
  • 入力形式の注意: データ型に合わない入力をするとInputMismatchExceptionが発生する。
  • 改行の扱い: nextIntなどの後にnextLineを使用する場合、改行が残ることに注意する。

6. まとめ

6. まとめ
6. まとめ

今回の記事では、JavaのScannerクラスとその基本的なメソッドであるnextメソッドについて詳しく学びました。Scannerクラスはユーザーからの入力を処理するための便利なツールであり、基本的な使い方を理解すれば、さまざまなプログラムに応用できます。また、nextメソッドを活用して単語単位で入力を取得したり、nextLineメソッドを用いて行全体の入力を取得する方法についても学びました。

さらに、入力処理でよく使われるnextIntnextDoubleなどのメソッドの使い方や、それらを使用する際の注意点についても触れました。特に、scanner.close()によるリソースの解放や、例外処理に備えることが重要であることが分かりました。

以下に、今回の学びを活用した簡単なプログラム例を示します。これを試してみて、Scannerクラスの便利さを実感してください。


import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("名前を入力してください: ");
        String name = scanner.nextLine();

        System.out.print("年齢を入力してください: ");
        int age = scanner.nextInt();

        System.out.println("こんにちは、" + name + "さん。あなたは " + age + " 歳ですね!");

        scanner.close();
    }
}

このプログラムでは、名前と年齢の両方を入力する例を示しています。このように、複数の入力を組み合わせて扱うことで、より実用的なプログラムを作ることができます。

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

生徒

「今回のScannerクラスについて、基本から応用までしっかり学べました!特にnextメソッドとnextLineメソッドの違いが分かりやすかったです。」

先生

「良かったです。ScannerクラスはJavaプログラミングでとても役立つので、これを機にしっかりと使いこなせるようにしましょう。」

生徒

「今度はエラー処理についても学びたいです。例えば、入力ミスがあった場合の対応など。」

先生

「それは素晴らしい考えですね。次回は例外処理やtry-catch構文について学び、より堅牢なプログラムを作る方法を見ていきましょう。」

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

「この記事を読んだ人からの質問」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

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

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

JavaのScannerクラスとは一体どのような機能を持つクラスなのでしょうか?初心者にもわかりやすく教えてください。

JavaのScannerクラスは、プログラムを実行している最中に、ユーザーがキーボードから入力した文字や数値、あるいはファイルの中に保存されているデータなどを読み取るために用意された非常に便利なクラスです。Java標準ライブラリのjava.utilというパッケージに含まれており、プログラミング初心者がJavaの学習を始める際に、最初に行う「ユーザーとの対話型プログラム」の作成には欠かせない存在です。このクラスを使うことで、標準入力であるSystem.inからデータを受け取り、それを文字列や整数といったJavaのデータ型として簡単に扱うことができるようになります。
カテゴリの一覧へ
新着記事
New1
Java
JavaのLocalDate.minusMonthsの使い方を完全ガイド!初心者向け日付操作の基本
新規投稿
New2
Java
JavaのStringクラスとcharAtメソッドを完全解説!初心者でも理解できる使い方
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「IgnoreCase」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Spring
SpringDataJPAのJPAクエリメソッド「False」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Thymeleaf
Thymeleafのth:checkedの使い方!チェックボックスON/OFFを動的に制御する方法
No.3
Java&Spring記事人気No3
Java
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.4
Java&Spring記事人気No4
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.5
Java&Spring記事人気No5
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.6
Java&Spring記事人気No6
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.7
Java&Spring記事人気No7
Spring
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.8
Java&Spring記事人気No8
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ