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

Съдържание:

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

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

Видео: Как да получите въвеждане от потребител в Java (със снимки)
Видео: Моя мама - шпион | Серия 1 2024, Може
Anonim

Когато програмирате на Java или на друг език, най -вероятно ще трябва да използвате входна информация от потребител. Java предоставя много различни методи за получаване на потребителска информация, но най -често срещаният и може би най -лесният за изпълнение метод е да се използва обектът на скенера.

Стъпки

Метод 1 от 2: Видеоклипове

1514756 1
1514756 1

Стъпка 1. Импортирайте класа на скенера

Можете да изберете да импортирате

java.util. Scanner

клас или целия

java.util

пакет. За да импортирате клас или пакет, добавете един от следните редове в самото начало на вашия код:

    внос java.util. Scanner; // Това ще импортира само класа Scanner. импортиране на java.util.*; // Това ще импортира целия пакет java.util.

1514756 2
1514756 2

Стъпка 2. Инициализирайте нов обект на скенера, като предадете

System.in

входен поток към конструктора.

System.in

е стандартният входен поток, който вече е отворен и готов за предоставяне на входни данни. Обикновено този поток съответства на въвеждане от клавиатурата.

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

1514756 3
1514756 3

Стъпка 3. Прочетете различни видове входни данни, които потребителят въвежда

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

  • Ето някои методи, които са достъпни чрез класа на скенера:

    • Прочетете байт -

      nextByte ()

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

      nextShort ()

    • Прочетете int -

      nextInt ()

    • Чети дълго -

      nextLong ()

    • Прочетете плувка -

      nextFloat ()

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

      nextDouble ()

    • Прочетете булев -

      nextBoolean ()

    • Прочетете цял ред -

      nextLine ()

    • Прочетете дума -

      следващия()

  • Ето пример за програма, която използва различни методи от класа Scanner, за да получи различни типове въвеждане:

      внос java.util. Scanner; публичен клас ScannerExample {public static void main (String args) {// Иницииране на нов скенер на скенера userInputScanner = нов скенер (System.in); // Тестване nextLine (); System.out.println ("\ nКак се казваш?"); Име на низ = userInputScanner.nextLine (); // Тестване nextInt (); System.out.print ("Колко котки имате?"); int numberOfCats = userInputScanner.nextInt (); // Тестване nextDouble (); System.out.print ("Колко пари има в портфейла ви? $"); двоен moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nЗдравейте" + име + "! Имате" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "и $" + moneyInWallet + "в портфейла си. / N"); }}

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

1514756 4
1514756 4

Стъпка 1. Обработете изключенията за въвеждане

Ан

InputMismatchException

се изхвърля, когато потребителят въведе данни, които не съвпадат с искания тип. Например, ако потребителят въведе String, когато се поиска int, програмата ще изхвърли

InputMismatchException

и излезте. Има няколко начина да се справите с това изключение и да разрешите този проблем, за да може вашата програма да бъде надеждна.

1514756 5
1514756 5

Стъпка 2. Използвайте блок try-catch за обработка на

InputMismatchException

.

    импортиране на java.util. InputMismatchException; внос java.util. Scanner; публичен клас ScannerExample {public static void main (String args) {// Иницииране на нов скенер на скенера userInputScanner = нов скенер (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 ("\ nЗдравейте" + име + "! Имате" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "и $" + moneyInWallet + "в портфейла си. / н"); }}

  • Имайте предвид, че трябва да импортираме

    java.util. InputMismatchException

    за да използвате

    InputMismatchException

  • клас.
  • Използваме цикъл while, за да зададем на потребителя същия въпрос, докато потребителят въведе правилното въвеждане.
  • Добавяне

    userInputScanner.nextLine ();

  • в частта за улов на try-catch гарантира, че скенерът потвърждава натискането на клавиша "enter" от потребителя и функционира като начин за изчистване на входния буфер.
1514756 6
1514756 6

Стъпка 3. Като алтернатива, направете потребителския вход безпроблемен, като вземете само следващите редове от скенера

По този начин можем да гарантираме, че всичко, което Scanner връща, е String обект и няма да създава изключения. След това, за да преобразуваме низовете в цели или удвоени, можем да използваме класовете Integer и Double wrapper.

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

  • Имайте предвид, че тук не трябваше да импортираме

    NumberFormatException

  • клас, защото е част от пакета java.lang, което означава, че идва вграден.
  • Също така не трябваше да изчистваме буфера с помощта

    userInputScanner.nextLine ();

  • в частта за улов на try-catch.

Съвети

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

Препоръчано: