Java スキャナークラスの next()メソッドと nextLine()メソッドの違い

Farkhanda Athar 2023年10月12日
  1. Java の next() メソッド Scanner
  2. Java の nextLine() メソッド Scanner
  3. Java の next() メソッドと nextLine() メソッドの違い
Java スキャナークラスの next()メソッドと nextLine()メソッドの違い

java.util パッケージの一部である Scanner クラスは、doubleintstring などの基本タイプの入力を取得するために使用されます。これは、Java プログラムで入力を読み取る最も効率的な方法です。それでも、競技プログラミングなど、時間が問題となるシナリオで使用できる入力方法を探している場合は、あまり効率的ではありません。Scanner クラスは、next() メソッドと nextLine() メソッドで構成されています。この記事では、これら 2つの手法の違いについて説明します。

Java の next() メソッド Scanner

Java の next() メソッドは Scanner クラスで使用でき、ユーザーの入力を取得するために使用できます。このメソッドを利用するには、スキャナーオブジェクトを作成する必要があります。このメソッドは、見つかったスペースに遭遇するまで入力を読み取ることができます。また、スキャナーで完了した次のトークンを取得します。これは、Java で next() メソッドがどのように機能するかを示しています。

コード例:

import java.util.Scanner;

class ABC {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String Inpt = sc.next();
    System.out.println(Inpt);
  }
}

入力:

Welcome To 
Party

出力:

Party

Java の nextLine() メソッド Scanner

nextLine() は、Scanner クラスで使用可能な Java のメソッドであり、ユーザーの入力を取得するために使用されます。このメソッドを使用する前に構築する必要がある Scanner オブジェクトを作成する必要があります。このメソッドは、行末までの入力を読み取ることができます。また、行が変更されるか改行されるまで入力を読み取り、\n または Enter キーを押して入力を終了します。これは、Java で nextLine() メソッドがどのように機能するかを示す図です。

コード例:

import java.util.Scanner;

class ABC {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String Inpt = sc.nextLine();
    System.out.println(Inpt);
  }
}

入力:

Welcome To 
Party

出力:

Welcome To

Java の next() メソッドと nextLine() メソッドの違い

next() nextLine()
入力デバイスからの入力を、文字スペースに到達するまで読み取ります。 行が変わるまで、入力されたデバイスからの入力を読み取ります。
スペースのある単語は読めません。 スペースを入れて単語を読むことができます。
スペースを確保すると、入力の読み取りを停止します。 \n を取得するか、Enter キーを押すと、入力の読み取りを停止します。
入力を受け取った後、カーソルは同じ場所に置かれます。 入力を読み取った後、カーソルは次の行に置かれます。
next() をエスケープするシーケンスは、スペースを参照します。 nextLine() のエスケープシーケンスは\n です。
入力をスキャンするための構文:Scanner.next() 入力をスキャンする構文:Scanner.nextLine()

関連記事 - Java Scanner