Blog de programación e ideas locas

Tag: teclado

Leyendo desde la entrada de teclado con Java usando java.util.Scanner

by on May.14, 2010, under CyP, Java

Hola a todos :D

Hoy dia escribire un tutorial o howto (comos sea ¬¬) de como leer datos de desde la entrada de teclado en Java.

La entrada de teclado en Java está dado por la variable in en la clase System. La variable System.in es del tipo java.io.InputStream esta clase permite la entrada de datos de manera bruta (leyendo bytes a bytes :( ) sinceramente esto puede ser algo engorroso, para eso usamos la clase java.util.Scanner que aparecio en la version Java 1.5. Esta clase su uso es super sencillo para construirla debemos solo pasarle una variable tipo java.io.InputStream osea en este caso System.in

Obteniendo un objeto del tipo java.util.Scanner

//File:LeyendoTeclado.java
//Importando la clase Scanner
java.util.Scanner;

//Creando una clase cualquiera
public class LeuendoTeclado{

//Hacer que la clase sea ejecutable. Agregando el main
  public static void main(String args[]){
     //Aqui inicializamos un objeto Scanner para leer datos desde teclado
     Scanner scan = new Scanner(System.in);
  }
}

Como pueden darse cuenta en la función main creamos un nuevo objeto java.util.Scanner

La clase java.util.Scanner tiene muchas funciones utiles, como saber lo que viene despues y obtenerlo
boolean hasNext()
boolean hasNextInt()
boolean hasNextFloat()
etc...

Estas ultimas preguntan si vienen un String, un Int y un Float respectivamente (he incluso si saben inglés se puede deducir facilmente) devuelven true si es verdadero.

String next()
int nextInt()
float nextFloat()
etc...

tambien si sabes inglés puedes saber que hacen (devuelven el siguiente…)
Estas devuelven un String, int y float respectivamente.

Entonces un ejemplo:

//Extracto de solo main
  public static void main(String args[]){
     //Aqui inicializamos un objeto Scanner para leer datos desde teclado
     Scanner scan = new Scanner(System.in);
     //devuelve un entero
     int a = scan.nextInt();
     //devuelve un float
     float b = scan.nextFloat();
     //devuelve el siguiente String delimitado ' '.Equivalente C a:
     //char str[256];
     //scanf("%s",str);
     String c = scan.next();
     //Imprime el entero a
     System.out.println(a);
     //Imprime el flotante b
     System.out.println(b)
     //Imprime el String c
     System.out.println(c);
  }

Bueno esto es todo por hoy Saludos a todos :D

Es bueno revizar la documentación de Scanner para más información

4 Comments :, , , more...