カテゴリ: Java 更新日: 2025/12/30

JavaのScannerクラスとnextLineメソッドの使い方を完全ガイド!初心者でもわかる文字列入力の基本

ScannerのnextLineメソッド
ScannerのnextLineメソッド

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

生徒

「Javaでキーボードから文字列を入力して、それを表示するにはどうすればいいですか?」

先生

「JavaではScannerクラスのnextLineメソッドを使うと、ユーザーが入力した文字列を読み取ることができます。」

生徒

「具体的にどうやって使うんですか?初めてなので教えてください!」

先生

「もちろんです。それではScannerクラスとnextLineメソッドの基本から順番に見ていきましょう。」

1. Scannerクラスとは何か

1. Scannerクラスとは何か
1. Scannerクラスとは何か

Javaでキーボードから文字を入力したいときに、もっともよく使われるのがScannerクラスです。コンソール(黒い画面)に入力された文字を読み取って、プログラムの中で利用できるようにしてくれます。たとえば、名前を入力して画面に表示したり、好きな食べ物を聞いて返事をしたりといった、初心者向けの練習で大活躍します。

Scannerはjava.utilパッケージに含まれているため、Javaファイルの先頭でimport java.util.Scanner;と書くのが基本です。importを忘れるとエラーになるので注意しましょう。

簡単なサンプル(キーボード入力を使う最小の例)

import java.util.Scanner;

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

        System.out.print("何か文字を入力してください:");
        String text = scanner.nextLine();

        System.out.println("入力された文字は「" + text + "」です。");
        scanner.close();
    }
}

このように、Scannerオブジェクトを作ってSystem.inを指定するだけで、キーボードからの入力が使えるようになります。Javaの学習を始めたばかりでも扱いやすく、多くの入門教材で必ず登場する基本クラスです。

2. nextLineメソッドの役割と特徴

2. nextLineメソッドの役割と特徴
2. nextLineメソッドの役割と特徴

nextLineは、ユーザーが Enter キーを押すまでの「1行まるごと」を文字列として受け取るメソッドです。途中にスペースやタブが入っていても、そのまま欠けずに取得できます。たとえば「私は Java が 好き です」のように空白を含む文章でも、1回の読み取りで全部受け取れるのが強みです。

また、何も入力せずに Enter を押した場合は空文字(長さ0の文字列)が返ります。入力の前後の空白は自動で削らない(トリムしない)点も覚えておくと混乱しません。下の最小サンプルで挙動を確認してみましょう。

簡単なサンプル(1行をそのまま読み取る)

import java.util.Scanner;

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

        System.out.print("好きなフレーズを入力してください:");
        String line = scanner.nextLine();   // ← Enter までを丸ごと取得

        if (line.isEmpty()) {
            System.out.println("何も入力されていません。もう一度試してみましょう。");
        } else {
            System.out.println("受け取った文字列は「" + line + "」です。");
        }

        scanner.close();
    }
}
  • 文章向き:スペースを含む自己紹介・住所・メッセージの入力に最適。
  • 区切りは改行:ユーザーが Enter を押した時点で確定し、1行全体を返す。
  • 空文字もそのまま:未入力で Enter の場合は""(空文字)を返す。

まずはこのメソッドで「1行をそのまま受け取れる」感覚をつかみましょう。文章入力を扱う全ての基本になります。

3. ScannerとnextLineメソッドの基本的な使い方

3. ScannerとnextLineメソッドの基本的な使い方
3. ScannerとnextLineメソッドの基本的な使い方

次は、実際にScannerクラスとnextLineメソッドを使って文字列を入力し、画面に出力する基本的なプログラムを見てみましょう。


import java.util.Scanner;

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

        System.out.print("あなたの好きな言葉を入力してください:");
        String word = scanner.nextLine();

        System.out.println("あなたの好きな言葉は「" + word + "」ですね。");

        scanner.close();
    }
}

このコードでは、Scannerオブジェクトを作成し、nextLineメソッドを使って1行の文字列を読み取り、それを出力しています。最後にscanner.close()でリソースを解放しているのもポイントです。

4. nextLineメソッドと他のメソッドの違い

4. nextLineメソッドと他のメソッドの違い
4. nextLineメソッドと他のメソッドの違い

ScannerにはnextLineのほかにも、next、nextInt、nextDoubleといったメソッドがあります。それぞれ目的が異なるため、使い分けが必要です。

  • nextLine:1行全体を取得。スペースを含む文章にも対応。
  • next:単語単位で取得。スペースがあると途中で区切られる。
  • nextInt:整数を取得。数値専用。

文字列全体を読みたいときはnextLineが適しており、たとえば自己紹介や住所、感想などを入力させたいときに便利です。

5. nextLineメソッド使用時の注意点

5. nextLineメソッド使用時の注意点
5. nextLineメソッド使用時の注意点

nextLineメソッドを使う際には、他のメソッド(たとえばnextIntなど)との組み合わせに注意が必要です。たとえばnextIntの後にnextLineを使うと、改行コードが原因で入力がスキップされることがあります。

このようなケースでは、nextLineを2回呼び出すなどの対応が必要です。これはJava初心者がつまずきやすいポイントなので、必ず知っておきたい基礎知識です。

6. 実践!複数のnextLine入力を受け取るプログラム

6. 実践!複数のnextLine入力を受け取るプログラム
6. 実践!複数のnextLine入力を受け取るプログラム

複数の質問に対して、それぞれ文字列で回答を受け取りたい場合にも、nextLineメソッドは活用できます。


import java.util.Scanner;

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

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

        System.out.print("今の気持ちを一言でどうぞ:");
        String feeling = scanner.nextLine();

        System.out.println("ようこそ " + name + " さん。気持ちは「" + feeling + "」なんですね!");

        scanner.close();
    }
}

このように、複数のnextLineメソッドを使って、Javaで柔軟な文字列入力を行うことができます。

7. Java初心者にとってのnextLineメソッドの重要性

7. Java初心者にとってのnextLineメソッドの重要性
7. Java初心者にとってのnextLineメソッドの重要性

Javaを学び始めたばかりの初心者にとって、nextLineメソッドは非常に重要な基本メソッドの一つです。文字列をそのまま入力できるシンプルな設計は、直感的に理解しやすく、標準入力の基礎を学ぶ上で最適です。

また、Javaの基本構文やキーボード入力処理の流れを実感する良い練習にもなるため、繰り返し使って覚えるのがおすすめです。特に、スペースを含む日本語文章や感想文を入力したいときは、nextLineの使い方をしっかりマスターしておきましょう。

8.まとめ

8.まとめ
8.まとめ

この記事では、Java初心者が必ず覚えておきたいScannerクラスとnextLineメソッドの使い方について詳しく解説しました。Javaの標準入力における基本中の基本であるScannerクラスは、キーボードからの文字列入力を簡単に実現できる非常に便利なクラスです。その中でもnextLineメソッドは、改行までの1行をまるごと文字列として取得できるため、日本語の文章や感想などの自由な入力に向いています。

特にnextLineはスペースを含む文字列の入力が可能であるため、「私はJavaが大好きです」といった文や、「今日の気分は晴れやかです」のような自然文の入力処理にとても適しています。Javaプログラムにおいて、ユーザーからの自由入力を扱いたい場面では、このメソッドが大きな力を発揮します。

また、この記事ではnextLineと他の入力メソッド(nextnextInt)との違いについても紹介しました。それぞれのメソッドには用途があり、場面に応じて正しく使い分けることが重要です。たとえば、数値を入力するならnextInt、単語だけを取得したいならnext、文全体を取得したいならnextLineといったように使い分けましょう。

さらに、他のメソッドとnextLineを連続して使うときに注意が必要な点も説明しました。これはJava初心者がよくつまずくポイントのひとつです。nextIntのあとにnextLineをすぐ呼ぶと、改行コードが原因で入力が飛ばされる問題が起こります。このような場面ではnextLineを1回余分に呼び出して解消する方法が一般的です。

最後に、複数のnextLine入力を使った実践的なプログラムも紹介しました。実際のJavaプログラムでは、複数の質問に対して柔軟に回答を受け取ることがよくあります。名前、気持ち、住所、趣味など、ユーザーとのやり取りをする際には、nextLineの存在が非常に頼もしいものになります。

ここでもう一度、ScannerクラスとnextLineメソッドを使って、自由な文字列を入力するJavaプログラムの例を見ておきましょう。


import java.util.Scanner;

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

        System.out.print("好きな映画のタイトルを教えてください:");
        String movie = scanner.nextLine();

        System.out.print("その映画を一言で表すと?:");
        String comment = scanner.nextLine();

        System.out.println("映画「" + movie + "」は「" + comment + "」という感想ですね。");

        scanner.close();
    }
}

Javaの標準入力処理の基本を理解するには、ScannerクラスとnextLineメソッドの使い方をしっかり学ぶことが重要です。Java初心者にとって、プログラミングの楽しさを実感しやすいのが、こういったインタラクティブな入力処理です。簡単なプログラムを繰り返し書いて慣れていくうちに、自然と構文や入力の流れが身についていきます。

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

生徒

「JavaのnextLineメソッドって、本当に便利ですね。日本語の文章もそのまま入力できるから驚きました!」

先生

「そうなんです。Javaで文字列入力を扱うなら、nextLineが基本になります。文章全体を扱いたいときにとても役立ちますよ。」

生徒

「でも、nextIntの後にnextLineを使ったら入力が飛んじゃって焦りました…」

先生

「それはJava初心者がよく経験することですね。改行コードの扱いに注意して、必要ならnextLineを余分に呼びましょう。」

生徒

「わかりました!たくさん練習してnextLineをちゃんと使いこなせるようにします!」

先生

「その意気です!次は他の入力メソッドや例外処理についても学んでいきましょうね。」

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

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

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

Javaで文字列を入力するにはどのクラスを使えばよいですか?

Javaでキーボードから文字列を入力するには、java.utilパッケージのScannerクラスを使います。Scannerは標準入力を簡単に扱える便利なクラスで、初心者に最適です。

ScannerクラスのnextLineメソッドはどんなときに使いますか?

nextLineメソッドは、ユーザーが入力した1行全体の文字列をそのまま取得したいときに使います。スペースを含む文章や日本語のメッセージを扱いたいときに最適です。

nextLineとnextの違いは何ですか?

nextメソッドは単語単位で文字列を取得し、スペースがあると途中で切れます。一方、nextLineは改行までのすべての文字列を取得できるため、文章全体を入力したい場合はnextLineを使います。

nextLineメソッドを使うときに注意することはありますか?

はい、nextIntやnextDoubleなど他の入力メソッドの後にnextLineを使うと、改行コードの影響で入力がスキップされることがあります。その場合はnextLineを余分に一度呼び出して改行を消す必要があります。

Scannerクラスのcloseメソッドはなぜ必要なのですか?

Scannerクラスで使用される入力リソース(System.in)を開放するためです。プログラムの最後でscanner.close()を呼び出すことで、不要なリソース使用やエラーを防ぐことができます。

Javaで複数の文字列を順番に入力するにはどうすればよいですか?

複数の文字列を入力したい場合は、ScannerクラスのnextLineメソッドを必要な回数分呼び出します。それぞれ別の変数に格納して、後でまとめて出力することもできます。

Java初心者がnextLineメソッドを覚えるメリットは何ですか?

nextLineメソッドは文章全体を簡単に扱えるため、入力処理の基礎として非常に重要です。フォーム入力やインタラクティブなアプリを作る際に必要になる基本スキルです。

nextIntのあとにnextLineを使うと入力できないのはなぜですか?

nextIntの後に残った改行文字がnextLineに読み込まれてしまうため、次の入力がスキップされたように見えるからです。この現象を防ぐには、nextLineを一度余分に呼び出しておくと解決できます。

JavaのScannerクラスを使うときにimportは必要ですか?

はい、Scannerクラスはjava.utilパッケージに属しているため、使用する前に「import java.util.Scanner;」をプログラムの先頭で書く必要があります。

nextLineで日本語やスペースを含む文字列も正しく入力できますか?

はい、nextLineメソッドは日本語やスペースを含んだ長文の入力にも対応しており、改行までのすべての文字列をそのまま読み込むことができます。

Javaの標準入力を使った簡単なアンケートを作るにはどうすればよいですか?

ScannerクラスとnextLineメソッドを使えば、名前や感想などの質問を順番に表示して、それぞれの回答を文字列として取得する簡単なアンケートプログラムを作成できます。
カテゴリの一覧へ
新着記事
Springの@Transactional徹底解説!トランザクションの伝播・分離レベル・タイムアウトの基本
JavaのHashMapクラスgetメソッドの使い方を完全ガイド!初心者でもわかるjava.util入門
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.3
Java&Spring記事人気No3
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
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
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法