JavaのScannerクラスとnextLineメソッドの使い方を完全ガイド!初心者でもわかる文字列入力の基本
生徒
「Javaでキーボードから文字列を入力して、それを表示するにはどうすればいいですか?」
先生
「JavaではScannerクラスのnextLineメソッドを使うと、ユーザーが入力した文字列を読み取ることができます。」
生徒
「具体的にどうやって使うんですか?初めてなので教えてください!」
先生
「もちろんです。それではScannerクラスとnextLineメソッドの基本から順番に見ていきましょう。」
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メソッドの役割と特徴
nextLineは、ユーザーが Enter キーを押すまでの「1行まるごと」を文字列として受け取るメソッドです。途中にスペースやタブが入っていても、そのまま欠けずに取得できます。たとえば「私は Java が 好き です」のように空白を含む文章でも、1回の読み取りで全部受け取れるのが強みです。
また、何も入力せずに Enter を押した場合は空文字(長さ0の文字列)が返ります。入力の前後の空白は自動で削らない(トリムしない)点も覚えておくと混乱しません。下の最小サンプルで挙動を確認してみましょう。
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メソッドの基本的な使い方
次は、実際に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メソッドと他のメソッドの違い
ScannerにはnextLineのほかにも、next、nextInt、nextDoubleといったメソッドがあります。それぞれ目的が異なるため、使い分けが必要です。
- nextLine:1行全体を取得。スペースを含む文章にも対応。
- next:単語単位で取得。スペースがあると途中で区切られる。
- nextInt:整数を取得。数値専用。
文字列全体を読みたいときはnextLineが適しており、たとえば自己紹介や住所、感想などを入力させたいときに便利です。
5. nextLineメソッド使用時の注意点
nextLineメソッドを使う際には、他のメソッド(たとえばnextIntなど)との組み合わせに注意が必要です。たとえばnextIntの後にnextLineを使うと、改行コードが原因で入力がスキップされることがあります。
このようなケースでは、nextLineを2回呼び出すなどの対応が必要です。これはJava初心者がつまずきやすいポイントなので、必ず知っておきたい基礎知識です。
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メソッドの重要性
Javaを学び始めたばかりの初心者にとって、nextLineメソッドは非常に重要な基本メソッドの一つです。文字列をそのまま入力できるシンプルな設計は、直感的に理解しやすく、標準入力の基礎を学ぶ上で最適です。
また、Javaの基本構文やキーボード入力処理の流れを実感する良い練習にもなるため、繰り返し使って覚えるのがおすすめです。特に、スペースを含む日本語文章や感想文を入力したいときは、nextLineの使い方をしっかりマスターしておきましょう。
8.まとめ
この記事では、Java初心者が必ず覚えておきたいScannerクラスとnextLineメソッドの使い方について詳しく解説しました。Javaの標準入力における基本中の基本であるScannerクラスは、キーボードからの文字列入力を簡単に実現できる非常に便利なクラスです。その中でもnextLineメソッドは、改行までの1行をまるごと文字列として取得できるため、日本語の文章や感想などの自由な入力に向いています。
特にnextLineはスペースを含む文字列の入力が可能であるため、「私はJavaが大好きです」といった文や、「今日の気分は晴れやかです」のような自然文の入力処理にとても適しています。Javaプログラムにおいて、ユーザーからの自由入力を扱いたい場面では、このメソッドが大きな力を発揮します。
また、この記事ではnextLineと他の入力メソッド(nextやnextInt)との違いについても紹介しました。それぞれのメソッドには用途があり、場面に応じて正しく使い分けることが重要です。たとえば、数値を入力するなら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をちゃんと使いこなせるようにします!」
先生
「その意気です!次は他の入力メソッドや例外処理についても学んでいきましょうね。」