Tutoriales de informática - Abrirllave.com

Abrirllave.com

Leer una variable de tipo String desde el teclado en Java

EJEMPLO { VariableNombre } Supongamos que se quiere escribir un programa que solicite al usuario su nombre, recogiéndolo –leyéndolo– por teclado. Por ejemplo: "Carlos". Y, seguidamente, muestre por pantalla un mensaje de saludo. Por ejemplo: "¡Hola Carlos!". Al ejecutar dicho programa, en pantalla se podrá ver algo similar a:

Ejecución del programa NombreVariable escrito en Java, utilizando print.

En este programa, el dato que se introduce por teclado es el nombre de una persona, es decir, una cadena de caracteres. Por tanto, para almacenar dicho dato, se puede declarar una variable de tipo String.

String nombre;

String en un tipo de objeto definido por Java. Por tanto, en la variable nombre se almacenará una referencia (dirección de memoria) a un objeto (instancia) de la clase String. Por otra parte, para leer el dato introducido por teclado se puede utilizar la clase Scanner de Java. Para ello, se puede escribir:

Scanner teclado = new Scanner(System.in);

Con esta sentencia, se crea un nuevo (new) objeto, llamado teclado, de la clase Scanner. En cuanto a System.in, hace referencia a la entrada (input) estándar, es decir, al teclado.

Posteriormente, se puede llamar (invocar) al método nextLine del la clase Scanner para leer la cadena de caracteres (dato) que introduzca el usuario y, mediante el operador de asignación (=), asginarle a la variable nombre la dirección de memoria donde está almacenado dicho dato. Esto se puede hacer con la sentencia:

nombre = teclado.nextLine();

Para poder utilizar la clase Scanner, hay que importarla de la API (Application Programming Interface, Interfaz de Programación de Aplicaciones) de Java utilizando la palabra reservada import y, puesto que dicha clase se encuentra contenida en el paquete java.util, hay que escribir:

import java.util.Scanner;

Nota: la API de Java –también conocida como JCL (Java Class Library, biblioteca de clases de Java)– contiene muchas clases que el programador puede utilizar. Dichas clases están agrupadas en paquetes (packages).

Finalmente, para mostrar por pantalla el saludo "¡Hola Carlos!", se puede escribir:

System.out.println("¡Hola " + nombre + "!");

Por tanto, el código fuente del programa completo podría ser:

import java.util.Scanner;

public class VariableNombre
{
    public static void main(String[] args)
    {
        String nombre;

        Scanner teclado = new Scanner(System.in);
        System.out.print("Introduzca su nombre: ");
        nombre = teclado.nextLine();
        System.out.println("¡Hola " + nombre + "!");
    }
}

Nota: véase que, para mostrar en la pantalla el mensaje "Introduzca su nombre" se ha invocado al método print, en lugar de println. En el caso de utilizarse este último, no se hubiese podido introducir el nombre en la misma línea que se solicita, como se puede ver en la siguiente imagen:

Ejecución del programa NombreVariable escrito en Java, utilizando println.

Nota: para poder hacer uso de la clase Scanner –ubicada en el paquete java.util– es obligatorio utilizar una sentencia import. Sin embargo, para utilizar otras clases –como por ejemplo String o System– esto no es necesario, ya que, forman parte del paquete java.lang de la API de Java, el cual es importado por defecto en todos los archivos (.java).