Метод nextBoolean
Метод nextBoolean класса Scanner считывает
следующий токен из входного потока и интерпретирует
его как логическое значение типа boolean.
Метод не принимает параметров и возвращает
true, если токен равен строке "true"
(без учета регистра), и false, если токен равен
строке "false" (без учета регистра).
Если очередной токен не является логическим
значением, метод выбрасывает исключение
InputMismatchException и курсор сканера
остается на месте.
Синтаксис
scanner.nextBoolean()
Пример
Давайте считаем логическое значение из строки и выведем его на экран:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("true");
boolean res = scanner.nextBoolean();
System.out.println(res);
scanner.close();
}
}
Результат выполнения кода:
true
Пример
Давайте считаем несколько логических значений из одной строки. Значения разделяются пробелами:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("true false TRUE False");
while (scanner.hasNextBoolean()) {
boolean res = scanner.nextBoolean();
System.out.println(res);
}
scanner.close();
}
}
Результат выполнения кода:
true
false
true
false
Пример
Метод не чувствителен к регистру, поэтому
значения TRUE и False также
распознаются корректно. Давайте проверим это
и сравним результат с литералом:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("FALSE");
boolean res = scanner.nextBoolean();
System.out.println(res);
System.out.println(res == false);
scanner.close();
}
}
Результат выполнения кода:
false
true
Пример
Если токен не является логическим значением,
метод выбросит исключение InputMismatchException:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("abcde");
try {
boolean res = scanner.nextBoolean();
System.out.println(res);
} catch (Exception e) {
System.out.println("Not a boolean");
}
scanner.close();
}
}
Результат выполнения кода:
"Not a boolean"