Extraer contenido con delimitadores dinámicos

30/May/2010 Java , , , , , 4 Comentarios

Una muy buena observación que nos hicieron en el artículo Extraer contenido separado por delimitadores con Java es que el uso de StringTokenizer limita la extracción de contenido. Sobre todo si los delimitadores son dinámicos, ya que StringTokenizer no permite el uso de expresiones regulares.

Imaginemos que el texto que nos envían para extraer los items tiene la siguiente estructura:

  1. String sCiudades = "#01avila#02madrid#03toledo#04santander";

Podemos comprobar que los delimitadores son dinámicos y que siguen la pauta de una almohadilla y un par de dígitos de separación, los cuales van incrementando.

Lo primero es encontrar una expresión regular para este delimitador dinámico. Podría ser:

#0[0-9]

Ahora, nos vamos a apoyar en el método .split() para dividir la cadena con la expresión regular y quedarnos con los items de resultado.

  1. String[] items = sCiudades.split("#0[0-9]");

Vemos que el método .split() nos devuelve un array de String. Así que solo nos quedará el recorrer el array para mostrar el contenido. Para ello utilizamos una estructura for-each

  1. for (String item: items)
  2. System.out.println(item);

Quisiéramos agradecer a personas como Unai estos aportes tan gratificantes de contenido que ayudan a que todos podamos aprender un poco más.

Vídeos sobre Java


4 comentarios en “Extraer contenido con delimitadores dinámicos”

Víctor Cuervo

lineadecodigo

@Garusis,

Me alegro que haya aportado un granito de arena. Eso es lo que intentamos hacer todos los días con nuestros artículos en Linea de Código.

Víctor Cuervo

Garusis

Wow… realmente no tenia idea de que esto podia hacerse… es bastante util, pero nunca se me habia pasado por la cabeza… gracias por darme un poquito mas de conocimiento… por eso me encanta este lugar.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*