Метод hasNext
Метод hasNext класса Scanner проверяет,
есть ли во входном потоке следующая лексема.
Метод возвращает true, если сканер
может прочитать ещё одну лексему, и false,
если входные данные закончились.
Без параметров метод проверяет наличие
любой следующей лексемы. В качестве
необязательного параметра можно передать
регулярное выражение - тогда метод проверит,
соответствует ли следующая лексема этому шаблону.
Синтаксис
scanner.hasNext()
scanner.hasNext(pattern)
Пример
Давайте проверим, есть ли во входной строке следующая лексема:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("abcde");
System.out.println(scanner.hasNext());
}
}
Результат выполнения кода:
true
Пример
Давайте прочитаем все лексемы из строки
с помощью цикла while и метода hasNext:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("1 2 3 4 5");
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
}
}
Результат выполнения кода:
"1"
"2"
"3"
"4"
"5"
Пример
Давайте проверим, соответствует ли следующая лексема числовому шаблону:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("12345 abcde");
System.out.println(scanner.hasNext("\\d+"));
System.out.println(scanner.hasNext("[a-z]+"));
}
}
Результат выполнения кода:
true
false
Смотрите также
-
метод
next,
который возвращает следующую лексему -
метод
nextLine,
который возвращает следующую строку -
метод
hasNextInt,
который проверяет наличие следующего целого числа -
класс
Scanner,
который читает данные из входного потока