
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:
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.
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
for (String item: items)
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.
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.
Juan Pablo Diaz
hola, buenas noches, podria solcitarte colaboracion con el siguiente ejercicio
Escribir un programa que simule el funcionamiento de una calculadora muy simplificada. Para ello lee dos
valores enteros separados por un operador aritmético (+ – * /) y calcula el resultado de la operación. Por
ejemplo, el usuario teclea 4 / 2 y el programa debe mostrar 2. que no he podido de antemano muchisimas gracias
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.