Social

viernes, 19 de abril de 2013

Java: Manejo de Cadenas. Método String.split().

En Java el método split(String regEx) nos permite dividir una cadena en base a las ocurrencias de una expresión regular definida dentro. Ya que es una expresión regular puede ser simplemente una letra, coma, signo o una construcción mas elaborada.

Hay que tomar en cuenta que existen símbolos especiales en las expresiones regulares como el punto, el signo más, los corchetes, etc. No se pueden agregar literalmente ya que dan problema. En caso de querer usarlos como cadenas se debe indicar usando \\. Por ejemplo \\. \\+ \\[ etc.

A continuación código para ejemplificar el método:


La salida del código seria la siguiente:

30 comentarios :

  1. Gracias por subir ese codigo, ayuda mucho...
    Tengo una duda al respecto no se si me la puedas contestar... ¿Es posible utilizar split con parámetros vacios? Esto con la intención de guardar cada calor del String en el arreglo. Y otra... En caso de que nuestro String tuviera un salto de linea ¿Cómo almacenaría en el arreglo este substring? Gracias de nuevo.

    ResponderEliminar
    Respuestas
    1. En el primer caso que indicas el método split separaría el String por caracteres. Con la otra, los saltos de linea quedarían intactos y se almacenarían como tales en el substring.

      Disculpa por la tardanza pero es mejor tarde que nunca haha.
      Saludos.

      Eliminar
  2. si quisiera usar split con comillas como seria? split(""");

    ResponderEliminar
    Respuestas
    1. Las comillas son un carácter reservado de java. Para realizar un split que busque las comillas debes hacerlo usando \". split("\"").
      Saludos.

      Eliminar
  3. como comparo 2 cadenas en una misma linea usando split??

    ResponderEliminar
  4. Despues que aplico la funcion split a un string, como hago para trabajar con cada pedacito por separado?

    ResponderEliminar
    Respuestas
    1. El metodo split te devolvera un array o arreglo de String[] (Ej. String[] pedacitos = cadena.split(",")).

      Puedes acceder a cada pedacito recorriendo el array o seleccionando una posición del array (Ej. pedacitos[1])

      Eliminar
  5. Buenas, me podrías dar una mano, como iría si la cadena a leer la tengo un archivo txt

    ResponderEliminar
    Respuestas
    1. Realmente no cambia mucho. Lo único que debes de hacer es obtener el texto del archivo y utilizar método que corresponda. Para abrir un archivo puedes ver el siguiente enlace: http://javainutil.blogspot.com/2013/02/javafx-abrir-y-guardar-archivos.html

      Eliminar
  6. Buenas tengo que usar este metodo para este ejercicio... Tengo que recojer un texto que entre un usuario por la clase scanner y luego verificar si el usuario dentro del texto que entro utilizo hashtags, si lo hiso solo debo imprimir los hashtags que hizo uno ensima del otro... como logro imprimir solo los hashtags y que no me salga el resto del texto que no necesito? plis

    ResponderEliminar
  7. Muy buena ayuda amigo pero tengo el siguiente problema ojala me puedas ayudar tengo una archivo armado mas o menos así:

    ^field tipo_doc
    Factura No
    ^field nro_documento
    002-002-0000001

    quisiera es parsear a un array o generar un xml
    ARRAY
    tipo_doc Factura No
    nro_documento 002-002-0000001

    XML
    Factura No
    002-002-0000001

    Alguien me puede dar una pista...!!!

    ResponderEliminar
  8. una pregunta como lo puedo mezclar con un array pero en el cual se le valla ingresar datos (en este caso numero )
    quiero hacer una calculadora pero en la cual el usuario va ingresar los numero que el quiere y las operaciones que el quiere que se realicen entre dichos numeros por ejemplo
    -3+5-2+5*20/10=10
    si me podrías responder te lo agradecería mucho

    ResponderEliminar
  9. Hola soy Alexander una cuestion como puedo separar una cadena q tenga el signo de divicion / no me sale split("\\/")

    ResponderEliminar
    Respuestas
    1. Para el signo división (/) no necesitas agregar el carácter de escape (\). Simplemente haz string.split("/")

      Saludos!

      Eliminar
  10. Buen día... Mi nombre es Héctor, este ejemplo lo vi en una entrevista de trabajo el cual aun no alcanzo a resolver por completo, mi ejemplo es el siguiente:

    Tengo una cadena.

    String cadena = " \"Este es un mensaje\", \"35\", \"Este es el \"Segundo\" mensaje\", 34";

    La cual tiene comillas de escape.
    Mi pregunta es como le hago para quitar esas comillas dobles donde la coma representa el final de cada enunciado el cual ya resuelto debe quedar de esta manera:

    Este es un mensaje
    35
    Este es el "Segundo" mensaje
    34

    Como puedes observar lo que quiero es que en el segundo texto deje las comillas que rodean alguna palabra y las demás las quite, me podrían ayudar con este ejemplo... Muchas Gracias.

    ResponderEliminar
    Respuestas
    1. Hola Héctor.

      Lo que buscas es hacer un split de la siguiente cadena: "\",\"".

      Si lo miras detenidamente al final estarias haciendo un split de ",". Ya que "Segundo" no esta seguido de comas el metodo split le dejara las comillas.

      Espero sea de ayuda!
      Saludos!

      Eliminar
  11. Buenas noches!: como puedo hacer si tengo una cadena compuesta por un String y un entero, para que me queden dos columnas, y que cuando el primer campo venga vacío (seria el String), no se escriba la linea en una archivo?? gracias..

    ResponderEliminar
  12. Cuando quiero hacer un split con "{" tengo error, como le hago?

    ResponderEliminar
  13. {\"claveEntidadFiscal\":\"10002\",\"razonSocial\":\"Complementos S.A. de C.V.\"}

    como dividir un Json

    ResponderEliminar
    Respuestas
    1. Tarde, pero lo que necesitas aca es usar un JSON parser. Esto te puede ayudar: http://javainutil.blogspot.com/2013/03/java-leer-un-json.html

      Eliminar
  14. Muchas gracias, ésto era lo que necesitaba "\\." para validar con punto.

    ResponderEliminar
  15. Buenas necesito separar lo siguiente : nombre1,nombre2,,,,,,
    que reconozca los espacios vacios y los almacene
    use este codigo: String diaArray[] = lineatexto.split(",");
    ya que ; indica la separacion pero cuando hay un espacio vacio deja de seguir guardando te agradeceria mucho la ayuda. Gracias

    ResponderEliminar
    Respuestas
    1. Hola Edgar!

      Al momento de usar el método split puedes usar lo siguiente:

      String diaArray[] = data.split(",", -1);

      Esto evita que se descargen los vacios.

      Saludos!

      Eliminar
  16. Amigo una duda que tengo si en un file cualquiera tengo informacion, como hago que esa informacion se le pase a un cosntructor

    ResponderEliminar
  17. y para las fechas y hora como lo hago

    ResponderEliminar
  18. Necesito poder guardar una cadena después de un (" ") espacio , no he podido lograrlo , si alguien pudiera ayudarme de ante mano muchas gracias

    ResponderEliminar
  19. COMO UTILIZO EL SPLIT PARA UNA SOLA LETRA?

    ResponderEliminar

Chikita