見出し画像

Java:行がある限り処理を続ける(hasNext)

※自分用勉強メモです

hasNextLine メソッドは、Java の Scanner クラスのメソッドの1つで、次の行が存在するかどうかを確認するために使われます。主に、ファイルや標準入力(コンソールなど)から入力を読み取る際に使用されます。

このメソッドは次の行が存在する場合に true を返し、存在しない場合に false を返します。

結論

  • hasNextLine は、次の行が存在するかどうかをチェックするメソッドです。

  • 次の行が存在すれば true を返し、存在しない場合は false を返します。

  • 主に標準入力やファイルからのデータの読み取りで使われ、while ループと組み合わせて使用することが多いです。

ポイント

  • nextLine() メソッドは実際に次の行を取得するのに対して、hasNextLine() は行が存在するかどうかを確認するだけです。

hasNextLine の使い方

  • メソッドの概要:

public boolean hasNextLine()

このメソッドは boolean 型を返し、次の行が存在する場合に true、存在しない場合に false を返します。

hasNextLine の利用シーン

  1. 標準入力からのデータ読み取り: コンソールから複数行の入力があり、行単位で処理を行いたい場合に使われます。

  2. ファイルからのデータ読み取り: ファイル内のテキストを1行ずつ処理する際に使います。

使用例

1. 標準入力からのデータ読み取りの例

ユーザーが複数行の入力を行う場合、行がある限り処理を続けるコードです。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("複数行のテキストを入力してください(終了するには Ctrl + D または Ctrl + Z を入力します):");

        // 次の行がある限り繰り返す
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();  // 1行を読み取る
            System.out.println("入力された行: " + line);  // 行を出力
        }
        
        scanner.close();
    }
}

2. ファイルからのデータ読み取りの例

次に、ファイルの内容を1行ずつ読み取って出力する例です。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        try {
            // 読み取るファイルを指定
            File file = new File("example.txt");
            Scanner scanner = new Scanner(file);
            
            // 次の行がある限り読み取る
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();  // ファイルから1行読み取る
                System.out.println(line);          // その行を出力
            }
            
            scanner.close();
        } catch (FileNotFoundException e) {
            System.out.println("ファイルが見つかりませんでした");
            e.printStackTrace();
        }
    }
}

この例では、example.txt というファイルの内容を1行ずつ読み取って、標準出力に表示します。


いいなと思ったら応援しよう!