Метод hasNextInt
Метод hasNextInt класса Scanner проверяет,
можно ли прочитать следующий токен из входного потока
как целое число типа int. Метод возвращает
true, если следующий токен является целым числом,
и false в противном случае. Метод не читает
и не извлекает токен из потока - он только проверяет
его. Без параметров метод использует текущий разделитель
(по умолчанию - пробельные символы). В качестве
необязательного параметра можно передать систему счисления
(основание), в которой будет проверяться число.
Синтаксис
scanner.hasNextInt()
scanner.hasNextInt(radix)
Пример
Давайте проверим, содержит ли ввод целое число, перед его чтением:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("12345");
if (scanner.hasNextInt()) {
int num = scanner.nextInt();
System.out.println(num);
}
scanner.close();
}
}
Результат выполнения кода:
12345
Пример
Давайте проверим ввод, который не является целым числом:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("abcde");
if (scanner.hasNextInt()) {
System.out.println("This is an integer");
} else {
System.out.println("This is not an integer");
}
scanner.close();
}
}
Результат выполнения кода:
"This is not an integer"
Пример
Давайте проверим несколько токенов в цикле и выведем только те, которые являются целыми числами:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("123 abc 456 def 789");
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
System.out.println(scanner.nextInt());
} else {
scanner.next();
}
}
scanner.close();
}
}
Результат выполнения кода:
123
456
789
Пример
Давайте проверим число в шестнадцатеричной системе
счисления, передав основание 16:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner("1A2F");
if (scanner.hasNextInt(16)) {
int num = scanner.nextInt(16);
System.out.println(num);
}
scanner.close();
}
}
Результат выполнения кода:
6703
Смотрите также
-
класс
Scanner,
который читает данные из входного потока -
метод
nextInt,
который читает целое число -
метод
hasNext,
который проверяет наличие следующего токена -
метод
hasNextLine,
который проверяет наличие следующей строки