Javaのnextメソッド解説!理解を深める6つのソースコード例
Java言語におけるnextメソッドの使い方とその適用例をわかりやすくご紹介します。
この記事を通して、nextメソッドの基本的な動作と、それを用いた実践的なコーディング技術を身につけていただければと思います。

nextメソッドとは
JavaのScannerクラスにはユーザーからの入力を受け取るためのメソッドが多く含まれています。
その一つがnextメソッドであり、これは空白、タブ、改行文字で区切られたワード(文字列)を入力として読み取る役割があります。

KindleUnlimited会員であれば、全ての本をご覧頂けます。 StreamAPIを理解すれば、Javaの世界が変わる 第1版

nextメソッドの基本的な使い方
まずはnextメソッドの基本的な使い方を確認してみましょう。
ここでは、ユーザーからの入力をScannerクラスとnextメソッドを使用して読み取り、結果を出力するシンプルな例をご紹介します。
ソースコード例1
1 2 3 4 5 6 7 8 9 10 11 |
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("文字列を入力してください:"); String input = scanner.next(); System.out.println("入力された文字列は:" + input); scanner.close(); } } |
出力結果
入力:OpenAI GPT 出力:入力された文字列は:OpenAI

nextメソッドで複数のワードを読み取る
では、次にnextメソッドを使って複数のワードを順に読み取る方法を学びましょう。
基本的にはnextメソッドを複数回呼び出すことで、次のワードを読み込むことができます。
ソースコード例2
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("2つの単語を入力してください(空白で区切ってください):"); String word1 = scanner.next(); String word2 = scanner.next(); System.out.println("入力された単語1:" + word1); System.out.println("入力された単語2:" + word2); scanner.close(); } } |
出力結果
入力:Java Programming 出力:入力された単語1:Java 出力:入力された単語2:Programming

2. nextメソッドとnextLineメソッドの違い
Javaで入力を受け取る際、Scannerクラスを使用します。
特にnextメソッドとnextLineメソッドはよく使われますが、その違いを理解することで、思わぬバグを防ぐことが可能になります。

ポイント
・nextメソッドは空白文字(スペースやタブ、改行など)で区切られた最初の文字列のみを取得します。
・nextLineメソッドは行末までの文字列を取得します。
2.1 nextメソッドの使用例
ソースコード例
1 2 3 4 5 6 7 8 9 10 |
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("文字列を入力してください:"); String input = scanner.next(); System.out.println("入力された文字列は:" + input); scanner.close(); } } |
出力結果
文字列を入力してください: Hello World 入力された文字列は:Hello

2.2 nextLineメソッドの使用例
ソースコード例
1 2 3 4 5 6 7 8 9 10 |
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("文字列を入力してください:"); String input = scanner.nextLine(); System.out.println("入力された文字列は:" + input); scanner.close(); } } |
出力結果
文字列を入力してください: Hello World 入力された文字列は:Hello World

3. nextメソッドの活用例
nextメソッドは単語ごとの入力を受け取るのに非常に適しています。具体的なシチュエーションとしては、ユーザーから複数のキーワードをスペース区切りで入力してもらい、それぞれのキーワードに基づいた処理を行いたい場合などが考えられます。
3.1 複数のキーワードをスペースで区切って入力
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.util.Scanner; public class KeywordProcessor { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("キーワードをスペースで区切って入力してください(例:apple orange banana):"); while(scanner.hasNext()) { String keyword = scanner.next(); System.out.println("入力されたキーワード:" + keyword); } scanner.close(); } } |
出力結果
キーワードをスペースで区切って入力してください(例:apple orange banana): apple orange banana 入力されたキーワード:apple 入力されたキーワード:orange 入力されたキーワード:banana

3.2 nextメソッドを使用した簡易的なクイズプログラム
ユーザーに問題を出題し、答えを入力してもらう簡単なクイズプログラムの例を考えてみましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.Scanner; public class SimpleQuiz { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("次の都市はどの国の首都ですか?(回答例:Tokyo)"); System.out.println("Question: Paris"); String answer = scanner.next(); if("France".equalsIgnoreCase(answer)) { System.out.println("正解です!"); } else { System.out.println("残念、不正解です。"); } scanner.close(); } } |
出力結果
次の都市はどの国の首都ですか?(回答例:Tokyo) Question: Paris France 正解です!

まとめ
この記事では、JavaのScannerクラスに含まれる「nextメソッド」に焦点を当て、その基本的な使用方法と実用的な使い方について解説しました。
「nextメソッド」は、基本的にホワイトスペース(スペースやタブ、改行など)をデリミタ(区切り文字)として文字列を取得するメソッドであり、入力されたデータをトークンとして認識します。
また、「nextLineメソッド」との違いにも触れました。「nextLineメソッド」は、改行までを一つのトークンとして認識し、それを一つの文字列として返す点が「nextメソッド」と異なります。
ソースコードのサンプルを交えながら、「nextメソッド」がプログラム内でどのように動作するかを体感していただけたのではないでしょうか?

プログラムやアプリケーションの開発において、ユーザーからの入力を効果的にハンドリングすることは極めて重要です。
「nextメソッド」を含むScannerクラスの各メソッドを理解し、適切に活用することで、Javaプログラミングの幅が一気に広がります。入力データを基にした多様な処理が可能になり、ユーザーとのインタラクションを豊かにすることができるでしょう。
これからもプログラミングに関するさまざまな情報をシェアしていく予定です。次の記事もお楽しみに!
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!
