Com obtenir informació d'un usuari a Java (amb imatges)

Taula de continguts:

Com obtenir informació d'un usuari a Java (amb imatges)
Com obtenir informació d'un usuari a Java (amb imatges)

Vídeo: Com obtenir informació d'un usuari a Java (amb imatges)

Vídeo: Com obtenir informació d'un usuari a Java (amb imatges)
Vídeo: Эд Бойден: Переключатель для нейронов 2024, Maig
Anonim

Quan programeu en Java o en qualsevol altre llenguatge, és probable que hàgiu d’utilitzar la informació d’entrada d’un usuari. Java proporciona molts mètodes diferents per obtenir informació de l'usuari, però el mètode més comú i potser el més fàcil d'implementar és utilitzar l'objecte Scanner.

Passos

Mètode 1 de 2: vídeos

1514756 1
1514756 1

Pas 1. Importeu la classe Scanner

Podeu importar el fitxer

java.util. Scanner

classe o la totalitat

java.util

paquet. Per importar una classe o un paquet, afegiu una de les línies següents al principi del vostre codi:

    importar java.util. Scanner; // Això només importarà la classe Scanner. importa java.util. *; // Això importarà tot el paquet java.util.

1514756 2
1514756 2

Pas 2. Inicialitzeu un nou objecte de l'escàner passant el

System.in

flux d'entrada al constructor.

System.in

és el flux d’entrada estàndard que ja està obert i està preparat per subministrar dades d’entrada. Normalment, aquest flux correspon a l'entrada de teclat.

    Scanner userInputScanner = nou escàner (System.in);

1514756 3
1514756 3

Pas 3. Llegiu diferents tipus de dades d'entrada que l'usuari introdueix

La classe Scanner admet obtenir primitives com int, byte, short, long a més d'obtenir cadenes.

  • A continuació, es detallen alguns mètodes disponibles a la classe Scanner:

    • Llegiu un byte -

      nextByte ()

    • Llegiu un breu -

      nextShort ()

    • Llegiu un int -

      nextInt ()

    • Llegiu una llarga -

      nextLong ()

    • Llegiu un flotador -

      nextFloat ()

    • Llegiu un doble -

      nextDouble ()

    • Llegiu un booleà -

      nextBoolean ()

    • Llegiu una línia completa -

      nextLine ()

    • Llegiu una paraula -

      Pròxim()

  • Aquí teniu un exemple d’un programa que utilitza diferents mètodes de la classe Scanner per obtenir diferents tipus d’entrada:

      importar java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciar un nou escàner Scanner userInputScanner = nou escàner (System.in); // Provant nextLine (); System.out.println ("\ nCom es diu?"); Nom de la cadena = userInputScanner.nextLine (); // Provant nextInt (); System.out.print ("Quants gats tens?"); int numberOfCats = userInputScanner.nextInt (); // Provant nextDouble (); System.out.print ("Quants diners hi ha a la cartera? $"); doble dinerInWallet = userInputScanner.nextDouble (); System.out.println ("\ nHola" + nom + "! Teniu" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "i $" + moneyInWallet + "a la vostra cartera. / N"); }}

Mètode 2 de 2: Gestió d'excepcions

1514756 4
1514756 4

Pas 1. Gestioneu les excepcions d'entrada

An

InputMismatchException

es llença quan l'usuari introdueix dades que no coincideixen amb el tipus sol·licitat. Per exemple, si l'usuari introdueix una cadena quan es demana una int, el programa llançarà una

InputMismatchException

i sortir. Hi ha diverses maneres de gestionar aquesta excepció i resoldre aquest problema de manera que el vostre programa pugui ser infal·lible.

1514756 5
1514756 5

Pas 2. Utilitzeu un bloc de captura per gestionar el fitxer

InputMismatchException

.

    importació java.util. InputMismatchException; importar java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciar un nou escàner Scanner userInputScanner = nou escàner (System.in); // Provant nextLine (); System.out.print ("\ nCom es diu?"); Nom de la cadena = userInputScanner.nextLine (); // Provant nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Quants gats tens?"); proveu {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Provant nextDouble (); validInput = fals; doble diners a Wallet = 0,0; while (! validInput) {System.out.print ("Quants diners hi ha a la cartera? $"); proveu {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nHola" + nom + "! Teniu" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "i $" + moneyInWallet + "a la vostra cartera. / n "); }}

  • Tingueu en compte que hem d’importar

    java.util. InputMismatchException

    per tal d'utilitzar el fitxer

    InputMismatchException

  • classe.
  • Estem fent servir un bucle while per fer la mateixa pregunta a l'usuari fins que l'usuari introdueixi l'entrada correcta.
  • Sumant

    userInputScanner.nextLine ();

  • a la part de captura de la prova de captura, es garanteix que l'escàner reconeix la tecla "enter" de l'usuari i funciona com una manera d'esborrar la memòria intermèdia d'entrada.
1514756 6
1514756 6

Pas 3. També podeu fer que l’entrada de l’usuari sigui infal·lible prenent només les següents línies de l’escàner

D’aquesta manera, podem assegurar-nos que tot el que retorna l’escàner sigui un objecte de cadena i no creï cap excepció. A continuació, per convertir les cadenes a enters o dobles, podem utilitzar les classes Integer i Double wrapper.

    importar java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciar un nou escàner Scanner userInputScanner = nou escàner (System.in); // Provant nextLine (); System.out.print ("\ nCom es diu?"); Nom de la cadena = userInputScanner.nextLine (); // Provant nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Quants gats tens?"); Cadena d'entrada = userInputScanner.nextLine (); proveu {numberOfCats = Enter.parseInt (input); validInput = true; } catch (NumberFormatException e) {validInput = false; }} // Provant nextDouble (); validInput = fals; doble diners a Wallet = 0,0; while (! validInput) {System.out.print ("Quants diners hi ha a la cartera? $"); Cadena d'entrada = userInputScanner.nextLine (); prova {moneyInWallet = Double.parseDouble (entrada); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nHola" + nom + "! Teniu" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "i $" + moneyInWallet + "a la vostra cartera. / n "); }}

  • Tingueu en compte que aquí no hem hagut d'importar el fitxer

    NumberFormatException

  • class perquè forma part del paquet java.lang, el que significa que ve incorporat.
  • Tampoc no hem hagut d'esborrar la memòria intermèdia mitjançant

    userInputScanner.nextLine ();

  • a la part de captura de la prova.

Consells

  • Consulteu l’API de l’escàner per obtenir més informació sobre l’ús de la classe de l’escàner.
  • Utilitzeu sempre.next () en lloc de.nextLine () per llegir la paraula següent, ja que.nextLine () pot ser un error.

Recomanat: