Scanner.nextInt()
Читает следующее целое число из ввода. Рядом — nextDouble(), next() и hasNextInt().
Доступно с: Java 5
Синтаксис
public int nextInt()Возвращаемое значение
intПрочитанное число int.
Примеры
Числа через пробелы и переводы строк (здесь ввод задан строкой, с клавиатурой работает так же):
void main() {
var scanner = new Scanner("3 4\n5");
int sum = 0;
while (scanner.hasNextInt()) {
sum += scanner.nextInt();
}
IO.println(sum);
}Результат:
12Ловушка: после nextInt() в строке остаётся перевод строки, и nextLine() вернёт пустую строку:
void main() {
var scanner = new Scanner("30\nAnna\n");
int age = scanner.nextInt();
String name = scanner.nextLine();
IO.println("[" + name + "]");
name = scanner.nextLine();
IO.println("[" + name + "]");
}Результат:
[]
[Anna]Примечания
Если следующий токен не число, nextInt() бросит InputMismatchException; заранее проверить можно через hasNextInt(). Чтобы избежать ловушки с переводом строки, после nextInt() вызовите лишний nextLine() или читайте всё через nextLine() и разбирайте Integer.parseInt().
nextDouble() зависит от языка системы: в русской локали он ждёт 3,5, а не 3.5. Явно задать формат можно так: scanner.useLocale(Locale.ROOT).
См. также
- Scanner — Читает ввод по частям: строки целиком (nextLine) или отдельные слова и числа.
- Integer.parseInt() — Превращает строку с целым числом в int.
- IO.readln() — Выводит подсказку и читает строку, которую ввёл пользователь.
В учебнике
- Ввод с клавиатуры — Как прочитать ввод пользователя в Java: IO.readln, превращение ввода в число и класс Scanner.