Clase scanner en Java

Java tiene un metodo llamado System.in, la cual obtiene la informacion de usuario. Sin embargo, Sytem.in no es tan simple como System.out. La razon porque no es tan facil es porque System.in solo lee la informacion en bytes. Bytes no nos sirve de mucho ya que los programas usualmente trabajan con valores de otro tipo (integrales, Strings, bool, etc). Para solucionar este problema usamos la clase Scanner. La clase Scanner esta diseñado para leer los bytes y convertirlo en valores primitivos (int, double, bool, etc) o en valores String.

Acontinuacion se detalla el funcionamiento de esta clase:

Primero tiene que crear un objeto Scanner y conectarlo con System.in

Scanner teclado = new Scanner(System.in);

Veamos este codigo por partes.La primera parte:

Scanner teclado

Este codigo declara una variable llamado teclado. El tipo de data de esta variable es Scanner. Ya que Scanner es una clase, la variable teclado es un objeto de la clase Scanner.

La segunda parte:

= new Scanner(System.in);

Lo primero que vemos es el simbolo =, lo cual esta asignando un valor a la variable teclado. El valor es Scanner(System.in) que en palabras comunes esta diciendo que el valor de teclado es lo que System.in tenga. Osea, cuando un usuario presiona una tecla, la computadora convierte esta informacion en bytes. Estos bytes son guardados en el objeto System.in, y por ultimo son asignados a la variable teclado. Despues del simbolo = vemos la palabra clave new lo cual crea un nuevo objeto en la memoria, el tipo de objeto que creara es Scanner(System.in), basicamente esta reservando memoria en la computadora para que se pueda guardar la informacion de System.in.

A continuacion  el siguiente ejemplo para dar mas claridad:

int edad;
Scanner teclado = new Scanner(System.in);
System.out.println(«Que edad tienes»);
edad = teclado.nextInt();

Veamos paso a paso que es lo que significa cada linea:

int edad :
Estamos declarando una variable int llamada edad la cual va a almacenar un numero.

Scanner teclado = new Scanner(System.in); :
Estamos declarando una variable Scanner, la cual va almacenar la informacion que el usuario introduce.

System.out.println(«Cual es tu edad»); :
Estamos usando el metodo println para preguntar al usuario por su edad.

edad = teclado.nextInt(); :
Estamos usando la variable teclado para obtener la informacion del usuario, luego convertimos los bytes en int con el metodo nextInt, y por ultimo estamos pasando el valor int a la variable edad

Existen varios metodos de la clase Scanner para convertir bytes en valores que sean mas utiles. Siguiente voy a mostrar una lista de los metodos mas comunes de la clase Scanner para convertir bytes en otros valores.

Metodos:

nextByte
nextDouble
nextFloat
nextInt
nextLine
nextLong

La mayoria de estos metodos se sobre entienden. Hay 2 que necesitan un poco mas de explicacion. El metodo nextByte no significa que va a reconvertir la informacion en bytes, sino que va a transformar la informacion en el valor byte la cual puede ser un numero del -128 al +127. El siguiente metodo que quisiera explicar es nextLine, nextLine convierte los bytes

Esta entrada fue publicada en Sin categoría. Guarda el enlace permanente.

22 respuestas a Clase scanner en Java

  1. marcela dijo:

    Gracias por tu informacion.. me sivio de mucho

  2. angie dijo:

    Excelente tu explicacion, muchas graciasss!! y sigue dejando informacion please, para los que recien empezamos y no tenemos mucha idea, y los profes en vez de aclarar confunden más hehehe,gracias nuevamente super claro todo

  3. angie dijo:

    MMMM no terminaste de poner la explicacion del nextLine….. porfaaa n no te olvidess

  4. binari0 dijo:

    muy buena la esplicacion.

  5. binari0 dijo:

    muy buena la explicacion.

  6. Daniel Angel dijo:

    Disculpe yo tengo una detalle al utilizar la clase Scanner en java siempre me sale un error, y al utilizar otro metodo de entrada como el bufferReader si se ejecuta el problema, de hecho funciona el programa en unas pc pero en otras no cuando utilizo la clase Scanner

  7. Fco Ponce dijo:

    Todo muy bien explicado, se agradece
    saludos

  8. LUFFI93 dijo:

    ESTA PAGINA ESTA MUY BUENA LA MEJOR LA EXPLICAION MAS COMPLETAQUE E VISTO SOBRE ESTE TEMA

  9. juan dijo:

    Fantástica explicación, clara y concisa.

  10. Pep dijo:

    Siento en ser el primer comentario en discordia. A pesar de que la explicación tiene sentido. No queda claro que es «System.in» …. me pregunto si es un método, como dice la primera línea o en cambio es un objeto como dice en el 3er párrafo grande.

    Aclárenmelo por favor.

  11. karen dijo:

    Graciass estoy con jazmin y valeria y nos a sido de mucha ayuda su informacion gracias nuevamente saludos!!

  12. valeria dijo:

    gracias estoy con karen y con jazmin y nos ha servido mucho esta informacion! (*.*)/

  13. jazmin dijo:

    muchas gracias estoy con cindy y valeria y estamos felizes por havernos dado esta informacion qe necesitabamos 🙂

  14. Inliss dijo:

    Excelente explicación… Mil gracias …

  15. ruben dijo:

    Pro fin una respuesta clara y logica… sigue adelante

  16. bie exlente explicacuin eee

Replica a Daniel Angel Cancelar la respuesta