viernes, 3 de julio de 2009

División de String en palabras con Java

Una de las tareas habituales en el mundo de la programación es el manejo de cadenas de caracteres (String). En este post os muestro una forma muy fácil de dividir Strings en palabras gracias a la clase StringTokenizer del paquete java.util de Java.
Observa el siguiente fragmento de código:

public List<Period> getPeriods(String strPeriodIds) {
List
<Period> periods = new ArrayList<Period>();
StringTokenizer st = new StringTokenizer(StringUtils.deleteWhitespace(strPeriodIds), ",");
while (st.hasMoreTokens()) {
periods.add(this.getPeriod(st.nextToken()));
}
return periods;
}
el método getPeriods() recibe un String que contiene un listado separado por comas de "Identificadores de Periodo"; ejemplo: "primero,segundo,tercero". El objetivo del método es devolver un List con los objetos de todos esos identificadores de periodos.

Observa cómo se construye el objeto st de la clase StringTokenizer. Su constructor recibe como parámetros:
  • El String que queremos dividir (Al que se le eliminan previamente todos los espacios en blanco)
  • El String por el que dividiremos en palabras, en este caso una coma "," (pero en otros casos puede que sean espacios en blanco " ")
La forma en la que se recorren todos los "trozos" de String (Tokens) es muy parecida al conocido patrón del Iterador.