public static void main(String[] args) {
String cadena = "Blog_Acerca_de_Java";
Scanner s = new Scanner(cadena);
s.useDelimiter("_");
while(s.hasNext()){
System.out.println(s.next()); //s.next() devuelve cadena token
}
}
En este programa se separarán en subcadenas separando por “_” y se muestra cada término en una línea en la consola de java. Este tipo de uso es muy similar a usar la clase StringTokenizer.
Por otro lado, la clase Scanner también tiene un constructor que recibe un InputStream, por lo que podemos pasarle al mismo la sentencia System.in para leer datos desde el teclado:
public static void main(String[] args) {
System.out.print("Introduzca datos: ");
Scanner s = new Scanner(System.in);
System.out.println(s.next());
System.out.println(s.nextInt());
System.out.println(s.nextLine());
}
Este último código lee datos a partir del teclado, separa en subcadenas con espacio en blanco como delimitador, lee la primera cadena y la imprime en consola, espera un espacio, después busca el siguiente dato e intenta convertirlo a entero (int) si no puede hacerlo lanza un InputMismatchException y se detiene, de no lanzar la excepción lee el siguiente dato hasta el final de la línea y lo imprime.
Otro constructor que también nos beneficia es el que recibe un archivo como parámetro. Supongamos que tenemos un archivo con esta información:
Kelvin 30 78,7 Horario: 8am a 4pm |
Los datos de este archivo pueden ser tratados mediante el siguiente programa:
public static void main(String[] args) {
try {
Scanner s = new Scanner(new File("archivo.txt"));
System.out.println(s.nextLine());
System.out.println(s.nextInt());
s.nextLine();
System.out.println(s.nextDouble());
s.nextLine();
System.out.println(s.nextLine());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (InputMismatchException e){
e.printStackTrace();
}
}
Recuerde colocar el archivo en la misma ruta el paquete del programa. Que fácil en comparación a los códigos de la versión anterior, ahora con la clase Scanner el manejo de archivos de acceso secuencial es mucho más fácil. Bueno, por ahora no tengo más que decir, espero esta información sea de utilidad, hasta una próxima edición.
Más información: Clase Scanner API Java