domingo, 3 de abril de 2016

Java básico #12


2. Entrada y salida de datos por consola

 2.1 Clase Scanner para entrada de datos

          La clase Scanner esta disponible a partir de Java 5 y facilita la lectura de datos. Para usarla debemos importar el paquete java.util.

import java.util.Scanner;

1. Creamos un objeto de tipo Scanner

Scanner sc = new Scanner(System.in);

2. Lo usamos


  1. int n;
  2. System.out.println("introduzca un numero entero: ");
  3. = sc.nextInt();
  4. System.out.println(n);

2.2 Funcionamiento de la clase Java Scanner

          De forma resumida podemos decir que cuando se introducen caracteres por teclado, el objeto Scanner toma toda la cadena introducida y la divide en elementos llamados tokens. Para separar los tokens se usa el espacio en blanco.
          Por ejemplo introducimos:
               Esto es un ejemplo, lectura de datos
   Scanner divide la cadena en los siguientes tokens:

               Esto
               es
               un
               ejemplo,
               lectura
               de
               datos

         Para acceder a estos tokens, usamos estos métodos:

Método
Descripción
nextXxx()
Devuelve el siguiente token como un tipo básico. Xxx es el tipo de dato. Por ejemplo, nextInt(), para leer un entero, nextDouble() para leer un doublé, etc
necxt()
Devuelve el siguiente token como un String
nextLine()
Devuelve la línea entera como un String. Elimina el final \n del buffer
hasNext()
Devuelve un boolean. Indica si existe o no un siguiente token para leer
hasNextXxx()
Devuelve un boolean. Indica si existe o no un siguiente token del tipo especificado en Xxx
useDelimiter(String)
Establece un nuevo delimitador de token, en String lo sustituimos por el delimitador

     2.2.2 Cómo limpiar el buffer de entrada en Java

Cuando en un programa se leen por teclado datos numéricos y datos de tipo carácter o String debemos tener en cuenta que al introducir los datos y pulsar intro, estamos también introduciendo en el buffer de entrada el intro.

     Buffer de entrada si se introduce un 5:  5\n
         = sc.nextInt();
   Buffer de entrada después de leer el entro: \n

          Para limpiar el buffer de entrada si se van a leer datos de tipo carácter a continuación de la lectura de datos numéricos, esto se hace así:
        sc.nextLine();
Ejercicios:
      
1. Crea un programa que pida por consola el nombre, edad y fecha de nacimiento, (acuerdate de limpiar el buffer) y muestra por pantalla el siguiente mensaje: "Hola [nombre], usted tiene  [años] y nacio en [año_nacimiento], es un placer"

No hay comentarios:

Publicar un comentario