StringTokenizer-separación de cadenas

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



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

2 comentarios:

warner dijo...

De Perú:
Soy nuevo en java, quisera una ayuda por favor.

Como puedo listar un tabla dbf (foxpro) con java.

Ariel O. Barria dijo...

En este enlace puedes descargar el driver y a documentación.
http://www.topshareware.com/HXTT-DBF-transfer-40049.htm