You are on page 1of 2

Java: StringTokenizer y Split

--------------------------------------------------------------------------------
Prohibida la reproducción total o parcial de este artículo sin el previo consentimie
nto de Webtutoriales.com
Dividir una String para obtener los diferentes elementos.

Separar una String por elementos


En este tutorial se verán dos formas de dividir una cadena de texto para extraer e
l contenido que nos interese.
Supongamos que tenemos una cadena de texto con elementos separados por espacios,
por ejemplo:
ver en popupcopiar a portapapelesimprimir01.String cadena = "elemento1 elemento2
elemento3";
String cadena = "elemento1 elemento2 elemento3";
StringTokenizer
Una de las formas para hacerlo en Java es utilizar la clase StringTokenizer, la
cual dividirá la cadena en Tokens (por defecto dividirá la cadena por espacios).
ver en popupcopiar a portapapelesimprimir01.String linea = "elemento1 elemento2
elemento3";
02.StringTokenizer tokens = new StringTokenizer(linea);
03.while(tokens.hasMoreTokens()){
04.System.out.println(tokens.nextToken());
05.}
String linea = "elemento1 elemento2 elemento3";
StringTokenizer tokens = new StringTokenizer(linea);
while(tokens.hasMoreTokens()){
System.out.println(tokens.nextToken());
}
Si se desea dividir la cadena por otro elemento distinto del espacio se puede ll
amar al constructor StringTokenizer con un parámetro más. Por ejemplo, si la cadena
tuviera los elementos separados por el caracter #, modificaríamos esta línea de código
del ejemplo anterior:
ver en popupcopiar a portapapelesimprimir01.StringTokenizer tokens = new StringT
okenizer(linea,"#");
StringTokenizer tokens = new StringTokenizer(linea,"#");
*NOTA: Recordamos que para utilizar esta clase es necesario importar el paquete
JAVA que la contiene en las primeras líneas del programa:
ver en popupcopiar a portapapelesimprimir01.import java.util.StringTokenizer;
import java.util.StringTokenizer;
Split
Otra posibilidad es utilizar la función Split de la clase String. Con esta función s
e pueden utilizar expresiones regulares. En este ejemplo separamos los elementos
con espacio (expresión regular \\s) y el más para indicar que puede haber más caracte
res a continuación.
ver en popupcopiar a portapapelesimprimir01.int j = 0;
02.String linea = "elemento1 elemento2 elemento3";
03.String [] campos = linea.split("\\s+");
04.while(j<campos.length){
05.System.out.println(campos[j]);
06.j++;
07.}
int j = 0;
String linea = "elemento1 elemento2 elemento3";
String [] campos = linea.split("\\s+");
while(j<campos.length){
System.out.println(campos[j]);
j++;
}
La función split pone cada elemento encontrado en una posición del vector de Strings
, para mostrar los elementos sólo hace falta recorrerlo.
Ejemplo más complejo con StringTokenizer
Veamos este ejemplo para obtener elementos dentro de otros elementos con StringT
okenizer. Supongamos que tenemos una cadena del tipo:
ver en popupcopiar a portapapelesimprimir01.String cadena = "[[a,b],[c,d],[e,f]]
";
String cadena = "[[a,b],[c,d],[e,f]]";
Podemos extraer los elementos de la siguiente forma:
ver en popupcopiar a portapapelesimprimir01.int i;
02.String line,word,subword;
03.StringTokenizer elementos,subelementos;
04.line ="[[a,b],[c,d],[e,f]]";
05.elementos = new StringTokenizer(line,"[]");
06.while(elementos.hasMoreTokens()){
07.word = elementos.nextToken();
08.i=1;
09.subelementos = new StringTokenizer(word,",");
10.while(subelementos.hasMoreTokens()){
11.subword = subelementos.nextToken();
12.System.out.println(i+". "+subword);
13.i++;
14.}
15.}

You might also like