Programming
T02-005- Leer del teclado
Enunciado
Existen varias formas de leer información proveniente del usuario. De entre todas ellas, nosotros usaremos la clase
Scannerde Java para leer de teclado.
- Dicha clase se encuentra en el paquete
java.util.Scannerde las librerías de Java, el cual tendré que importar a mi programa para poder utilizarlo. Para ello, antes de la declaración de la clase, pondremos el código siguiente:
import java.util.Scanner;
- Para poder leer del teclado usando la clase
Scanner, tenemos que crear un objeto de tipoScannervinculado a la entrada estándar del sistema. La siguiente línea declara, e inicializa o instancia (new) ese objetoScannerasociado a la entrada estándar(System.in) del sistema.
Scanner sc = new Scanner(System.in);Nota: Esta sentencia se va a repetir en innumerables ocasiones en nuestro código y, a fuerza de copiarla y pegarla, la aprenderemos de memoria, aunque su comprensión la dejaremos para más adelante.
En función del tipo de dato que vayamos a leer, utilizaremos alguno de los métodos que nos brinda la clase Scanner, a través del objeto
scque acabamos de instanciar:
- Para leer una cadena de caracteres de teclado usaremos el método
nextLine()de la claseScanner. Este método devuelve una cadena que debe ser almacenado en una variable de tipo String:
String cadena = sc.nextLine();
- Para leer un valor entero de teclado, usaremos el método
nextInt()de la claseScanner. Este método devuelve un entero, que debe ser almacenado en una variable de tipo int:
int entero = sc.nextInt();
- Para leer un valor real de teclado, usaremos el método
nextFloat()de la claseScanner. Este método devuelve un float, que debe ser almacenado en una variable de tipo float:
float real = sc.nextFloat();Ejemplo:
En el ejemplo que hemos realizado anteriormente, en el que se imprimía en pantalla "Mi nota en PROGRAMACION es: 10", el valor de esa nota se incluía dentro del código. Si quisiéramos que fuera el usuario que está ejecutando la aplicación el que introdujera el valor que le corresponde a la nota, lo haríamos con el siguiente código:
package lecturateclado;
import java.util.Scanner;
public class LecturaTeclado {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int miCalificacion;
System.out.println("Dime la nota que me corresponde:");
miCalificacion = sc.nextInt();
System.out.println("Mi nota en PROGRAMACION es: " + miCalificacion);
}
}Ejercicio:
Prueba a ejecutar el código anterior, permitiendo que, en lugar de una nota con valor entero, se pueda introducir una calificación con decimales.
Nota: Ten en cuenta que los decimales que introduce el usuario deben ir separados por la coma decimal y no por el .
Solución
package lecturateclado;
import java.util.Scanner;
public class LecturaTeclado {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
float miCalificacion;
System.out.println("Dime la nota que me corresponde:");
miCalificacion = sc.nextFloat();
System.out.println("Mi nota en PROGRAMACION es: " + miCalificacion);
}
}
Input
8,7
4,2
Output
Dime la nota que me corresponde: Mi nota en PROGRAMACION es: 8.7
Dime la nota que me corresponde: Mi nota en PROGRAMACION es: 4.2

