La clase StringTokenizer es una clase que nos permite manipular cadenas. Con esta clase podemos dividir una cadena en tokens, a base de un delimitador, donde un delimitador puede ser un pipe(|),asterisco(*),ampersan(&), una coma(,) que es el más utilizado en la separación de textos en archivos planos, y otros más.
También podemos pasarle a esta clase la cadena sin el parámetro del delimitador de separación, en donde la clase hace una revisión de forma implicita para nosostros de " \t\n\r\f" , y realiza la separación de la cadena.
Está clase tenemos muchas formas de implementarlas por ejemplo:
Si tenemos un archivo de texto el cual está separado por coma, solo queda leer el archivo creando una cadena con los datos obtenidos y luego le decimos a la clase StringTokenizer que nos separe la cadena por coma.
Hagamos un ejemplo donde asumimos que ya obtuvimos la cadena del archivo y le decimos a la clase StringTokenizer que nos la separe por coma
También podemos pasarle a esta clase la cadena sin el parámetro del delimitador de separación, en donde la clase hace una revisión de forma implicita para nosostros de " \t\n\r\f" , y realiza la separación de la cadena.
Está clase tenemos muchas formas de implementarlas por ejemplo:
Si tenemos un archivo de texto el cual está separado por coma, solo queda leer el archivo creando una cadena con los datos obtenidos y luego le decimos a la clase StringTokenizer que nos separe la cadena por coma.
Hagamos un ejemplo donde asumimos que ya obtuvimos la cadena del archivo y le decimos a la clase StringTokenizer que nos la separe por coma
import java.util.StringTokenizer;
public class Token {
private String token;
private String cadena;
StringTokenizer tk;
public Token(String cad,String tok ) {
this.token = tok;
this.cadena = cad;
}
public Token(String cad) {
this.cadena = cad;
}
public void desglosar() {
if (token == null) {
tk = new StringTokenizer(cadena);
} else {
tk = new StringTokenizer(cadena, token);
}
}
public StringTokenizer getToken() {
return tk;
}
public int cantidadToken() {
if (getToken() == null) {
return 0;
} else {
return getToken().countTokens();
}
}
public void imprimir() {
desglosar();
if (getToken() != null) {
if (cantidadToken() > 0) {
while (getToken().hasMoreTokens()) {
System.out.println("||===> " + getToken().nextToken());
}
}
}
}
@Override
public String toString(){
String finalcad="";
desglosar();
if (getToken() != null) {
if (cantidadToken() > 0) {
while (getToken().hasMoreTokens()) {
finalcad += getToken().nextToken()+"\n";
}
}
}
return finalcad;
}
public static void main(String arg[]) {
String cad = "uno dos tres cuatro cinco seis siente ocho nueve diez";
String cad2= "uno,dos,tres,cuatro,cinco,seis,siente,ocho,nueve,diez";
Token tk;
Token tk2;
tk = new Token(cad);
tk2 = new Token(cad2,",");
System.out.println("||==================================||");
tk.imprimir();
System.out.println("||==================================||");
tk2.imprimir();
System.out.println("||==================================||");
System.out.println(tk);
System.out.println("||==================================||");
}
}
El resultado es