Метод hasNextLine
Метод hasNextLine класса Scanner проверяет, доступна ли для чтения следующая строка во входном потоке. Метод не принимает параметров и возвращает boolean: true, если после текущей позиции есть еще одна строка, и false, если достигнут конец ввода. Метод удобно использовать в цикле while для построчного чтения данных до тех пор, пока они не закончатся.
Синтаксис
scanner.hasNextLine()
Пример
Давайте проверим, есть ли во входном потоке следующая строка:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
String input = "abcde";
Scanner scanner = new Scanner(input);
System.out.println(scanner.hasNextLine());
}
}
Результат выполнения кода:
true
Пример
Давайте прочитаем все строки из потока ввода в цикле while, используя метод hasNextLine как условие:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
String input = "abcde\n12345";
Scanner scanner = new Scanner(input);
while (scanner.hasNextLine())
{
String line = scanner.nextLine();
System.out.println(line);
}
}
}
Результат выполнения кода:
"abcde"
"12345"
Пример
Давайте проверим, что метод возвращает false, когда строк во входном потоке больше не осталось:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
String input = "abcde";
Scanner scanner = new Scanner(input);
System.out.println(scanner.hasNextLine());
scanner.nextLine();
System.out.println(scanner.hasNextLine());
}
}
Результат выполнения кода:
true
false