domingo, 21 de septiembre de 2014

Scanner en java


Scanner en java

Java tiene un método llamado System.in, la cual obtiene la información de usuario. Sin embargo, Sytem.in no es tan simple como System.out. La razón porque no es tan fácil es porque System.in solo lee la información 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.
A continuación 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 código 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 símbolo =, 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 información en bytes. Estos bytes son guardados en el objeto System.in, y por ultimo son asignados a la variable teclado. Después del símbolo = vemos la palabra clave new lo cual crea un nuevo objeto en la memoria, el tipo de objeto que creara es Scanner(System.in), básicamente esta reservando memoria en la computadora para que se pueda guardar la información de System.in.
A continuación  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 información del usuario, luego convertimos los bytes en int con el método nextInt, y por ultimo estamos pasando el valor int a la variable edad.

Existen varios métodos de la clase Scanner para convertir bytes en valores que sean mas útiles. Siguiente voy a mostrar una lista de los métodos mas comunes de la clase Scanner para convertir bytes en otros valores.
Métodos:
nextByte
nextDouble
nextFloat
nextInt
nextLine
nextLong

La mayoría de estos métodos se sobre entienden. Hay 2 que necesitan un poco mas de explicación. El método nextByte no significa que va a reconvertir la información en bytes, sino que va a transformar la información en el valor byte la cual puede ser un numero del -128 al +127. El siguiente método que quisiera explicar es nextLinenextLine convierte los bytes.

Página involucrada para mas información:

No hay comentarios:

Publicar un comentario