31.    Scanner (clase) java.util.Scanner

Analizador léxico simple. Se construye sobre algún tipo de fuente de caracteres:

Scanner (String source)

Scanner (Readable source)

Scanner (Reader source)

Scanner (InputStream source)

Scanner (File source)

 

Sobre la fuente de caracteres, va seleccionando lexemas (tokens) separados por espacio en blanco. Proporciona los resultados por medio de una interface Iterator:

 

String s =

  "Martes, 13 de septiembre de 2005, actualizado a las 16:16 h.";

    Scanner scanner = new Scanner(s);

    for (Iterator it = scanner; it.hasNext(); ) {

      String token = (String) it.next();

      System.out.println(token);

    }

Martes,

13

de

septiembre

de

2005,

actualizado

a

las

16:16

h.

 

Se puede parametrizar Scanner para que utilice cualquier otro tipo de separador de tokens.

Además, ofrece una serie de métodos que, habiendo leído un token, lo intentan interpretar como algún tipo primitivo de java:

int nextInt()

double nextDouble()

boolean nextBoolean()

byte nextByte()

float nextFloat()

 

short nextShort()

 

 

long nextLong()

 

 

 

Para analizar valores numéricos se emplean los convenios locales de puntuación.

Dichos métodos intentan interpretar el token que toca leer, lanzando una excepción si no puede:

·         InputMismatchException           si el token no responde al tipo deseado

·         NoSuchElementException         si no quedan más tokens

Por último cabe mencionar el método

String nextLine()

que devuelve lo que queda por leer de la línea actual; es decir, desde donde estemos hasta el primer fin de línea. Llamadas consecutivas a nextLine() van proporcionando líneas sucesivas de texto.

Temas relacionados

Las Bibliotecas de Java
Ejemplo: interacción con consola
Ejemplo: entrada de datos por consola