Uso de StringTokenizer con varios caracteres separadores (Java)
Todos hemos tenido que utilizar alguna vez StringTokenizer para separar subcadenas a partir de una cadena dada. Esto es muy sencillo si esas subcadenas son independientes entre sí. Pero ¿y si se organizan en forma "clave-valor"?. Por ejemplo, la siguiente cadena tiene la forma "jugador-deporte":
"Ronaldo=Futbol;Gasol=Baloncesto;Nadal=Tenis;Jordan=Baloncesto;"
Aquí tendríamos que tener en cuenta dos caracteres separadores: "=" y ";". Además, las subcademas habría que tratarlas teniendo en cuenta que las impares son nombres de deportistas y que las pares son nombres de deportistas. Lo mejor es que veamos un ejemplo:
El código
import java.util.StringTokenizer;
class PruebaST{
static String entrada = "Ronaldo=Futbol;Gasol=Baloncesto;Nadal=Tenis;Jordan=Baloncesto;";
public static void main(String args[]) {
StringTokenizer st = new StringTokenizer(entrada, "=;");
while(st.hasMoreTokens()) {
String jugador = st.nextToken();
String deporte = st.nextToken();
System.out.println(jugador + " " + deporte);
}
}
}
Resultado
La salida que daría ese código sería la siguiente:
Ronaldo Futbol
Gasol Baloncesto
Nadal Tenis
Jordan Baloncesto
Tweet