Ввод с клавиатуры

В Java существует удобный способ считывания данных с клавиатуры, который основан на классе Scanner. Этот класс предоставляет методы для ввода разных типов данных с клавиатуры. Что такое классы и методы – разберём не в этот раз. Пока просто примите их как данность – обёртку для операций. Эти понятия необходимо разбирать впоследствии и отдельно.

Класс Scanner

Необходимый нам класс Scanner лежит в пакете, который для использования в нашей программе нужно импортировать (сослаться на него в файле с кодом). Давайте это сделаем, это делается одной строчкой:

Готово! Теперь можно использовать класс Scanner.

Для того, чтобы считывать данные с клавиатуры, нам понадобится объявить переменную типа Scanner и создать новый объект класса Scanner.

В этой строке с помощью ключевого слова new был создан объект класса Scanner. Ему мы передали поток ввода (System.in), чтобы читать данные именно с клавиатуры. Пока что можете не заморачиваться, что в теории означают все эти классы, объекты, методы и так далее, поскольку это темы более поздние. Пока что посмотрите, как это использовать.

У класса Scanner есть методы (то, что он умеет делать) для считывания данных разных типов. Например:

  • next() – считывает следующее слово (до пробела или конца строки);
  • nextLine() – считывает всю строку (до символа перевода строки, то есть нажатия клавиши Enter);
  • nextByte() – следующее значение типа byte;
  • nextShort() – следующее значение типа short;
  • nextInt()int;
  • nextLong()long;
  • nextChar()char;
  • nextBoolean() boolean;
  • nextFloat()float;
  • nextDouble()double.

Следующий код продемонстрирует мастерский опрос пользователя.

Скриншот консоли IntelliJ IDEA с выводом регистрации художников на выставку, псевдоним Лютик

Благодаря объекту Scanner всё отображаемое здесь в консоли зелёным цветом – это мой личный ввод с клавиатуры. Таким образом, Java-программа позволила ввести данные, задав уточняющие вопросы, обработала их и вывела сообщение на экран. Если бы программа была более продвинутая, она могла бы не только бросать слова на ветер. Программа также могла бы сохранять данные о художнике в файл или даже в базу данных. Но пока ограничимся “Сказал – не сделал”.

Если на ожидаемый ввод целого числа (scanner.nextInt()) ввести вещественное число, или чего ещё хуже, строку – ошибка (исключение) не заставит себя ждать. Поэтому не будем так рисковать. Но обычно возможность таких казусов следует обрабатывать в программе.

Вычисления над введёнными данными

Благодаря наличию в Java самых разных пакетов и библиотек, мы можем многие функции (методы и классы) не писать сами – а использовать уже имеющиеся. К примеру, в Java есть класс Math, позволяющий проводить математические вычисления наподобие возведения в степень, взятия синуса, арксинуса, округления, генерации случайных чисел и так далее. Также у строк (типа String) есть много интересных методов. Давайте воспользуемся ими и усовершенствуем регистрацию на конкурс художников.

Итого были добавлены перевод в верхний регистр псевдонима (pseudonym.toUpperCase()), округление (Math.round()), выбор наименьшего из двух чисел (Math.min()). Но это только минимум возможностей этих инструментов. А инструментов ещё много разных. Так что не стесняйтесь, пробуйте, используйте, наслаждайтесь! Если вам нужен функционал, который уже кто-то реализовал, то зачем писать это самому?

Скриншот консоли IntelliJ IDEA с выводом регистрации художников на выставку, псевдоним Когтистый червь

Теперь у вас есть базовое представление о чтении ввода с клавиатуры с использованием класса Scanner. Кроме того, мы рассмотрели, как использовать некоторые методы встроенных пакетов. Не стесняйтесь экспериментировать с разными типами данных и операциями над ними.

Добавить комментарий