Una de las consultas que nos han hecho en la web es acerca de como extraer contenido que se encuentre separado por delimitadores
Y es que en muchas situaciones nos podemos encontrar con este problema. Posiblemente el más típico es aquel en el que recibimos información en un fichero que ha sido exportado de alguna herramienta.
Por ejemplo, partamos de la siguiente información:
ciudad#min#max#cielo avila#12#24#soleado toledo#16#15#soleado madrid#15#27#soleado barcelona#12#20#nublado
Vemos que el contenido está separado por delimitadores. En este caso mediante una almohadilla (#).
Si queremos procesar el contenido de las cadenas deberemos de extraer la información separada por los delimitadores. Para esto podemos apoyarnos en el método StringTokenizer.
StringTokenizer st = new StringTokenizer(sTexto,delimitador);
Dicho método nos deja los items encontrados en una cadena de texto cada vez que encuentre un delimitador.
Así, si partimos de la cadena
String sTiempo = "avila#12#24#soleado";
Podemos instanciar el StringTokenizer de la siguiente forma:
StringTokenizer st = new StringTokenizer(sTiempo,"#");
Como vemos, pasamos la almohadilla (#) como el separador que ha de utilizar el StringTokenizer.
Solo nos quedará recorrer el StringTokenizer para extraer los elementos. Esta última operación la realizamos con los métodos .hasMoreTokens() y .nextToken().
while (st.hasMoreTokens())
System.out.println (st.nextToken());