Puede ser un requerimiento, cuando se trabajan con textos, conocer la cantidad de palabras del mismo (inclusive las palabras). Ejemplo típico de este requerimiento es para contar las palabras que componen un determinado texto.
Hacer eso en Java es juego de niños gracias a la clase StringTokenizer.
En el siguiente ejemplo veremos la clase StringTokenizer recibe en su constructor el texto y luego con los métodos countTokens, hasMoreElements y nextElement conocemos la cantidad de palabras, recorremos la colección de palabras y obtenemos las mismas, respectivamente.
public static void main(final String[] args) {
int i;
String frase = “Que piensas hacer mañana”;
StringTokenizer palabras = new StringTokenizer(frase);
System.out.println (“Cantidad de palabras de frase: \”“ + frase + “\” es “ + palabras.countTokens() );
i=0;
while (palabras.hasMoreElements()) {
i++;
System.out.println( i + “-” + palabras.nextElement());
}
}
}
Para sumarle algo de acción al ejemplo, les presento un pequeño ejemplo visto en Java Tips. El siguiente código, basado en lo que aprendimos recién, divide la cadena en palabras (usando StringTokenizer) y luego invierte el orden de la misma utilizando una pila LIFO:
public static void main(String[] args) {
String frase = “Y que hacemos hoy”;
Stack pila = new Stack();
StringTokenizer tempStringTokenizer = new StringTokenizer(frase);
while (tempStringTokenizer.hasMoreTokens()) {
pila.push(tempStringTokenizer.nextElement());
}
System.out.println(“Cadena original: “ + frase);
System.out.println(“Cadena invertida: “);
while(!pila.empty()) {
System.out.println(stack.pop());
}
}
}
Vía: LinuxParaTodos
JAIME BARRA
agosto 21, 2009
NECESITO INFORMACION SOBRE LA APLICACION ANALIZADOR SINTACTICO
jorge
octubre 24, 2010
muy bueno el codigo, yo pensaba que solo se podia hacer con jflex, esto resulta mucho más práctico para lo que necesito
Francisco
junio 5, 2011
Exelente codigo me sera de gran utilidad te lo agradezco mucho