Cómo obtener información de un usuario en Java (con imágenes)

Tabla de contenido:

Cómo obtener información de un usuario en Java (con imágenes)
Cómo obtener información de un usuario en Java (con imágenes)

Video: Cómo obtener información de un usuario en Java (con imágenes)

Video: Cómo obtener información de un usuario en Java (con imágenes)
Video: PLAGUE INC/ Prión Brutal 2024, Mayo
Anonim

Al programar en Java o en cualquier otro lenguaje, lo más probable es que necesite utilizar la información de entrada de un usuario. Java proporciona muchos métodos diferentes para obtener información del usuario, pero el método más común y quizás el más fácil de implementar es usar el objeto Scanner.

Pasos

Método 1 de 2: vídeos

1514756 1
1514756 1

Paso 1. Importe la clase de escáner

Puede optar por importar el

java.util. Scanner

clase o toda la

java.util

paquete. Para importar una clase o un paquete, agregue una de las siguientes líneas al principio de su código:

    import java.util. Scanner; // Esto importará solo la clase Scanner. importar java.util. *; // Esto importará todo el paquete java.util.

1514756 2
1514756 2

Paso 2. Inicialice un nuevo objeto de escáner pasando el

System.in

flujo de entrada al constructor.

System.in

es el flujo de entrada estándar que ya está abierto y listo para suministrar datos de entrada. Normalmente, esta secuencia corresponde a la entrada del teclado.

    Escáner userInputScanner = nuevo escáner (System.in);

1514756 3
1514756 3

Paso 3. Leer diferentes tipos de datos de entrada que ingresa el usuario

La clase Scanner admite la obtención de primitivas como int, byte, short, long además de obtener cadenas.

  • A continuación, se muestran algunos métodos que están disponibles a través de la clase Scanner:

    • Leer un byte -

      nextByte ()

    • Leer un breve -

      nextShort ()

    • Leer un int -

      nextInt ()

    • Leer un largo -

      nextLong ()

    • Leer un flotador -

      nextFloat ()

    • Leer un doble -

      nextDouble ()

    • Leer un booleano -

      nextBoolean ()

    • Leer una línea completa -

      línea siguiente()

    • Leer una palabra -

      Siguiente()

  • Aquí hay un ejemplo de un programa que usa diferentes métodos de la clase Scanner para obtener diferentes tipos de entrada:

      import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciar un nuevo Scanner Scanner userInputScanner = new Scanner (System.in); // Probando nextLine (); System.out.println ("\ n¿Cómo se llama?"); Nombre de cadena = userInputScanner.nextLine (); // Probando nextInt (); System.out.print ("¿Cuántos gatos tienes?"); int numberOfCats = userInputScanner.nextInt (); // Probando nextDouble (); System.out.print ("¿Cuánto dinero hay en su billetera? $"); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nHello" + name + "! Tienes" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "y $" + moneyInWallet + "en tu billetera. / N"); }}

Método 2 de 2: Manejo de excepciones

1514756 4
1514756 4

Paso 1. Manejar las excepciones de entrada

Un

InputMismatchException

se lanza cuando el usuario ingresa datos que no coinciden con el tipo solicitado. Por ejemplo, si el usuario ingresa un String cuando se solicita un int, el programa lanzará un

InputMismatchException

y salir. Hay varias formas de manejar esta excepción y resolver este problema para que su programa sea infalible.

1514756 5
1514756 5

Paso 2. Utilice un bloque try-catch para manejar el

InputMismatchException

.

    import java.util. InputMismatchException; import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciar un nuevo Scanner Scanner userInputScanner = new Scanner (System.in); // Probando nextLine (); System.out.print ("\ n¿Cómo te llamas?"); Nombre de cadena = userInputScanner.nextLine (); // Probando nextInt (); booleano validInput = falso; int numberOfCats = 0; while (! validInput) {System.out.print ("¿Cuántos gatos tienes?"); intente {numberOfCats = userInputScanner.nextInt (); validInput = verdadero; } captura (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Probando nextDouble (); validInput = falso; double moneyInWallet = 0.0; while (! validInput) {System.out.print ("¿Cuánto dinero hay en su billetera? $"); intente {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = verdadero; } captura (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nHola" + nombre + "! Tienes" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "y $" + moneyInWallet + "en tu billetera. / norte"); }}

  • Tenga en cuenta que tenemos que importar

    java.util. InputMismatchException

    para utilizar el

    InputMismatchException

  • clase.
  • Estamos usando un ciclo while para hacerle al usuario la misma pregunta hasta que el usuario ingrese la entrada correcta.
  • Añadiendo

    userInputScanner.nextLine ();

  • en la parte de captura del try-catch asegura que el escáner reconoce la pulsación de la tecla "enter" por parte del usuario y funciona como una forma de borrar el búfer de entrada.
1514756 6
1514756 6

Paso 3. Alternativamente, haga que la entrada del usuario sea infalible tomando solo las siguientes líneas del escáner

De esta manera, podemos asegurarnos de que todo lo que devuelve el escáner sea un objeto String y no creará ninguna excepción. Luego, para convertir las cadenas en enteros o dobles, podemos usar las clases de envoltura Integer y Double.

    import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Iniciar un nuevo Scanner Scanner userInputScanner = new Scanner (System.in); // Probando nextLine (); System.out.print ("\ n¿Cómo se llama?"); Nombre de cadena = userInputScanner.nextLine (); // Probando nextInt (); booleano validInput = falso; int numberOfCats = 0; while (! validInput) {System.out.print ("¿Cuántos gatos tienes?"); Entrada de cadena = userInputScanner.nextLine (); try {numberOfCats = Integer.parseInt (entrada); validInput = verdadero; } catch (NumberFormatException e) {validInput = false; }} // Probando nextDouble (); validInput = falso; double moneyInWallet = 0.0; while (! validInput) {System.out.print ("¿Cuánto dinero hay en su billetera? $"); Entrada de cadena = userInputScanner.nextLine (); intente {moneyInWallet = Double.parseDouble (entrada); validInput = verdadero; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nHola" + nombre + "! Tienes" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "y $" + moneyInWallet + "en tu billetera. / norte"); }}

  • Tenga en cuenta que aquí no tuvimos que importar el

    NumberFormatException

  • class porque es parte del paquete java.lang, lo que significa que viene integrado.
  • Tampoco tuvimos que borrar el búfer usando

    userInputScanner.nextLine ();

  • en la parte de captura del try-catch.

Consejos

  • Consulte Scanner API para obtener más información sobre el uso de la clase Scanner.
  • Utilice siempre.next () en lugar de.nextLine () para leer la siguiente palabra, ya que.nextLine () puede tener errores.

Recomendado: