Java:行がある限り処理を続ける(hasNext)
※自分用勉強メモです
hasNextLine メソッドは、Java の Scanner クラスのメソッドの1つで、次の行が存在するかどうかを確認するために使われます。主に、ファイルや標準入力(コンソールなど)から入力を読み取る際に使用されます。
このメソッドは次の行が存在する場合に true を返し、存在しない場合に false を返します。
結論
hasNextLine は、次の行が存在するかどうかをチェックするメソッドです。
次の行が存在すれば true を返し、存在しない場合は false を返します。
主に標準入力やファイルからのデータの読み取りで使われ、while ループと組み合わせて使用することが多いです。
ポイント
nextLine() メソッドは実際に次の行を取得するのに対して、hasNextLine() は行が存在するかどうかを確認するだけです。
hasNextLine の使い方
メソッドの概要:
public boolean hasNextLine()
このメソッドは boolean 型を返し、次の行が存在する場合に true、存在しない場合に false を返します。
hasNextLine の利用シーン
標準入力からのデータ読み取り: コンソールから複数行の入力があり、行単位で処理を行いたい場合に使われます。
ファイルからのデータ読み取り: ファイル内のテキストを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行ずつ読み取って、標準出力に表示します。