Inicio > Java > split en Java

split en Java

Mi primer post sobre Java. y es para comentarles una curiosidad.

Hace días, me vi en la necesidad de separar un string que estaba almacenado en un archivo separado por el caracter “|” PIPE.
Bien, pues se me hizo fácil diciendo algo así.

String cadena = “algo|otro|menos|uno|cuando|nada”;
String [] vec = cadena.split(“|”);

A simple vista se ve bien y el codigo debe ser funcional.
Pero me lleve la sorpresa al ver que mi arreglo vec de tipo String, tenia nada mas y nada menos que 31 posiciones. es decir, al usar el modo debug y analizar el contenido de la variable vec me mostraba los sig:

vec[0] = “a”
vec[1] = “l”
vec[2] = “g”
vec[3] = “o”
vec[4] = “|”
vec[5] = “o”
vec[6] = “t”
……..
……..
vec[30] = “a”

Para no meterme mucho en problemas use la clase StringTokenizer de la sig mantera.

String cadena = “algo|otro|menos|uno|cuando|nada”;
StringTokenizer vec = new StringTokenizer(cadena,”|”);

este código funciono bien.

Entonces revise la ayuda de Java, para ver el método split y me encontré con que ese método
utiliza expresiones regulares para separar la cadena en Tokens. Y que algunos caracteres como el “.” y el “|” deben aparecer con el carácter de escape antepuesto.

Esto significa que mi código inicial hubiera funcionado sin problemas de la sig manera:

String cadena = “algo|otro|menos|uno|cuando|nada”;
String [] vec = cadena.split(“\\|”);

Y así fue, hice la prueba con el nuevo código y funciono justo como debía ser.

Espero sus comentarios..

Anuncios
  1. Rubax
    mayo 4, 2012 en 11:08 pm

    Muchas gracias por compartir tu experiencia, me has sacado de apuros =) , si ubiera un campo de donaciones lo haria.

  2. junio 25, 2012 en 11:59 am

    Muy bien gracias. No es a la usanza antigua 🙂 .
    Saludos

  1. marzo 28, 2011 en 5:41 am

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: