Как получить ввод от пользователя на Java (с изображениями)

Оглавление:

Как получить ввод от пользователя на Java (с изображениями)
Как получить ввод от пользователя на Java (с изображениями)

Видео: Как получить ввод от пользователя на Java (с изображениями)

Видео: Как получить ввод от пользователя на Java (с изображениями)
Видео: Greenland in Plague Inc. are like: 2024, Май
Anonim

При программировании на Java или любом другом языке вам, скорее всего, потребуется использовать вводимую информацию от пользователя. Java предоставляет множество различных методов для получения информации о пользователе, но наиболее распространенным и, возможно, самым простым в реализации методом является использование объекта Scanner.

Шаги

Метод 1 из 2: видео

1514756 1
1514756 1

Шаг 1. Импортируйте класс Scanner

Вы можете выбрать импорт

java.util. Scanner

класс или весь

java.util

упаковка. Чтобы импортировать класс или пакет, добавьте одну из следующих строк в самое начало вашего кода:

    import java.util. Scanner; // Будет импортирован только класс Scanner. import java.util. *; // Это импортирует весь пакет java.util.

1514756 2
1514756 2

Шаг 2. Инициализируйте новый объект Scanner, передав

System.in

входной поток в конструктор.

System.in

- это стандартный входной поток, который уже открыт и готов предоставить входные данные. Обычно этот поток соответствует вводу с клавиатуры.

    Сканер userInputScanner = новый сканер (System.in);

1514756 3
1514756 3

Шаг 3. Считайте различные типы входных данных, которые вводит пользователь

Класс Scanner поддерживает получение примитивов, таких как int, byte, short, long, в дополнение к получению строк.

  • Вот несколько методов, доступных через класс Scanner:

    • Прочитать байт -

      nextByte ()

    • Прочтите короткое -

      nextShort ()

    • Прочтите int -

      nextInt ()

    • Читать вдоль -

      nextLong ()

    • Читать поплавок -

      nextFloat ()

    • Прочтите двойной -

      nextDouble ()

    • Прочитать логическое значение -

      nextBoolean ()

    • Прочтите полную строку -

      nextLine ()

    • Прочтите слово -

      следующий()

  • Вот пример программы, которая использует разные методы класса Scanner для получения различных типов ввода:

      import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Запуск нового сканера Scanner userInputScanner = new Scanner (System.in); // Тестирование nextLine (); System.out.println ("\ nКак вас зовут?"); Имя строки = userInputScanner.nextLine (); // Тестирование nextInt (); System.out.print («Сколько у вас кошек?»); int numberOfCats = userInputScanner.nextInt (); // Тестирование nextDouble (); System.out.print («Сколько денег у вас в кошельке? $»); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nHello" + name + "! У вас есть" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "и $" + moneyInWallet + "в вашем кошельке. / N"); }}

Метод 2 из 2: обработка исключений

1514756 4
1514756 4

Шаг 1. Обработка исключений ввода

An

InputMismatchException

выдается, когда пользователь вводит данные, не соответствующие запрошенному типу. Например, если пользователь вводит String, когда запрашивается int, программа выдаст

InputMismatchException

и выйти. Есть несколько способов обработать это исключение и решить эту проблему, чтобы ваша программа была надежной.

1514756 5
1514756 5

Шаг 2. Используйте блок try-catch для обработки

InputMismatchException

.

    import java.util. InputMismatchException; import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Запуск нового сканера Scanner userInputScanner = new Scanner (System.in); // Тестирование nextLine (); System.out.print ("\ nКак вас зовут?"); Имя строки = userInputScanner.nextLine (); // Тестирование nextInt (); логическое значение validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Сколько у вас кошек?"); попробуйте {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Тестирование nextDouble (); validInput = false; двойной moneyInWallet = 0.0; while (! validInput) {System.out.print ("Сколько денег в вашем кошельке? $"); попробуйте {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nHello" + name + "! У вас есть" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "и $" + moneyInWallet + "в вашем кошельке. / n "); }}

  • Обратите внимание, что нам нужно импортировать

    java.util. InputMismatchException

    чтобы использовать

    InputMismatchException

  • класс.
  • Мы используем цикл while, чтобы задать пользователю тот же вопрос, пока пользователь не введет правильный ввод.
  • Добавление

    userInputScanner.nextLine ();

  • в части catch команды try-catch гарантирует, что Сканер подтверждает нажатие клавиши «Enter» от пользователя и функционирует как способ очистки входного буфера.
1514756 6
1514756 6

Шаг 3. В качестве альтернативы сделайте ввод данных пользователем надежным, беря только следующие строки из сканера

Таким образом, мы можем гарантировать, что все, что возвращает Scanner, является объектом String и не будет создавать никаких исключений. Затем, чтобы преобразовать строки в целые или двойные числа, мы можем использовать классы-оболочки Integer и Double.

    import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Запуск нового сканера Scanner userInputScanner = new Scanner (System.in); // Тестирование nextLine (); System.out.print ("\ nКак вас зовут?"); Имя строки = userInputScanner.nextLine (); // Тестирование nextInt (); логическое значение validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Сколько у вас кошек?"); Строка input = userInputScanner.nextLine (); попробуйте {numberOfCats = Integer.parseInt (ввод); validInput = true; } catch (NumberFormatException e) {validInput = false; }} // Тестирование nextDouble (); validInput = false; двойной moneyInWallet = 0.0; while (! validInput) {System.out.print ("Сколько денег в вашем кошельке? $"); Строка input = userInputScanner.nextLine (); попробуйте {moneyInWallet = Double.parseDouble (ввод); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nHello" + name + "! У вас есть" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "и $" + moneyInWallet + "в вашем кошельке. / n "); }}

  • Обратите внимание, что здесь нам не нужно было импортировать

    NumberFormatException

  • class, потому что он является частью пакета java.lang, а это значит, что он встроен.
  • Нам также не нужно было очищать буфер с помощью

    userInputScanner.nextLine ();

  • в уловной части три-улова.

подсказки

  • См. Scanner API для получения дополнительной информации об использовании класса Scanner.
  • Всегда используйте.next () вместо.nextLine () для чтения следующего слова, так как.nextLine () может содержать ошибки.

Рекомендуемые: