LECTURA DE DATOS POR TECLADO

Ahora veremos como leer datos por teclado con la clase Scanner de Java. Esta clase nos permite leer datos por teclado de una manera muy fácil, explicaremos su funcionamiento mucho mejor en Programación Orientada a Objetos.

Aquí esta un ejemplo claro y fácil de entender.
Supongamos que queremos Introducir nuestro nombre en un programa y mostrarlo por pantalla.

 

Cuando vayamos a usar Scanner debemos referenciar a la librería java.util.Scanner; si no la referenciamos nos aparecerán errores en las líneas que usemos Scanner.

Ahora expliquemos el código:

Scanner lector = new Scanner(System.in);

En esta línea para nuestros programas lo único que cambiara será la palabra lector. Ya que ‘lector’ es un “OBJETO” nuevo que creamos con la clase Scanner. Como “OBJETO” es un concepto de programación orientada a objetos solo tomaremos a ‘lector’ como una variable en la que se almacena todo lo que vayamos a introducir por teclado.

Ahora debemos guardar todo lo que escribimos en una variable que en este caso es la variable de tipo String nombre a la cual le asignamos todo lo que escribimos con el código:

 String nombre = lector.nextLine();

La línea siguiente cierra lector, lector.close(); es decir que ya no podremos escribir nada mas. Y por ultimo Mostramos por pantalla el contenido de la variable nombre.

 

Las letras en verde son las que introduje por teclado.
Ahora veamos como manipular Scanner para distintos tipos de datos.

int n1 = lector.nextInt(); //lee un numero entero
double n2 = lector.nextDouble();//lee un numero de tipo double
float n3 = lector.nextFloat();//lee un número de tipo flotante
String p1 = lector.next();//lee una cadena de texto
String p2 = lector.nextLine();//lee una cadena de texto hasta fin de línea


Con Scanner podemos introducir varios datos en una sola línea o en varias sin importar el tipo de datos que introduzcamos se pueden colocar números o/y cadenas, por ejemplo si queremos sumar dos números. Podemos escribir en una sola línea “2  3” entonces para que el programa separe los números en dos variables hacemos los siguiente:

  

Scanner separa las variables mediante los espacios en la línea el delimitador por defecto es el espacio.

En la línea 5 iniciamos Scanner y guardaremos en lector todo lo que introduzcamos por teclado. En este caso “2  3”

En la línea 6 asignamos en “a” el primer valor que es 2 y como existe un espacio la instrucción lector.nextInt(); solo asignara a la variable “a” el numero 2.

En la línea 7 lector.nextInt(); asigna el valor 3 a la variable “b” y si tuviéramos mas valores podríamos almacenarlos de esta forma en distintas variables. En la línea 8 cerramos lector y en las demás realizamos la operación y mostramos el resultado por pantalla.


22 comentarios:

  1. Gracias por compartir, Oscar Marcelo.

    ResponderEliminar
  2. Una preguntica, y si yo deseo meter en una sola linea los datos de un arreglo cómo puedo hacerlo...?

    ResponderEliminar
    Respuestas
    1. Como ves puedes colocar varios datos en una linea entonces tendrías que hacer un while para recoger los datos de toda la linea y dentro el while asignar los valores a un arreglo.

      Eliminar
  3. y si el usuario introduce el tamaño del arreglo y los datos introducidos estan en una sola linea???

    ResponderEliminar
  4. Buenos días, excelente espacio, felicitaciones, como hago para ingresar los datos horizontalmente, es que mi consola por defecto ubico los datos verticalmente; ejemplo, quiero que sea así (12 1 5.30)

    ResponderEliminar
  5. Prueben adquirir valores numéricos y luego una cadena de caracteres.

    ResponderEliminar
  6. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  7. Hola Buen@s dias, noches o tardes...
    Es que yo comienzo un tecnólogo y me están enseñando a manejar java y pues pense en indagar por internet para encontrar información sobre esta.
    Y quiero aprender a veces no le entiendo al profesor y me gustaria que me explicaras algunas cosas sobre este programa porfavor y ojala lo mas antes posible te lo agradeceria muchisimo enserio. O:)

    ResponderEliminar
    Respuestas
    1. Tatiana ya no doy mantenimiento al blog hace mucho si gustas puedes escribirme al face o twitter buscame con mi nombre del perfil y te ayudare con gusto en las consultas que tengas

      Eliminar
    2. Muchas gracias Oscar
      ya te busque por tu nombre del perfil pero me aparecen dos personas diferentes dime como apareces en tu foto de perfil porfavor :)

      Eliminar
    3. Estoy con varias personas en mi foto de perfil

      Eliminar
  8. Perfecto, muchas gracias por tu aporte.

    ResponderEliminar
  9. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  10. Como haces para leer 2 entradas en la misma linea?

    ResponderEliminar
  11. No entiendo dos entradas? O dos datos?

    ResponderEliminar
  12. Hola tengo un problema al ingresar un dato double con decimales:


    double p;

    Scanner teclado2=new Scanner(System.in);
    System.out.println("Ingrese el Peso: ");
    p = teclado.nextDouble();

    Me tira error cuando pongo un numero con decimales

    el error que me tira:

    Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextDouble(Unknown Source)
    at fi6.fisix.main(fisix.java:48)

    ResponderEliminar
  13. gracias el primer programa lo pude hacer gracias a tu ejemplo

    ResponderEliminar
  14. De nada la intención es compartir lo aprendido

    ResponderEliminar