0

Me gustaría saber como puedo dividir un String. El String con el que estoy trabajando es el siguiente:

"12345,\"Marcos\",132\n\"Juan\",594".

Lo que quiero es separar el String descartando las comas (,) y los saltos de línea (\n) para que me quede así en un array :

12345

"Marcos"

132

"Juan"

594

He probado a hacerlo con split(), pero solo solo puedo descartar o la coma o el salto de linea y yo quiero descartar los dos.

Un saludo y muchas gracias

Ulyses Evans
  • 149
  • 12
  • El String "12345,\"Marcos\",132\n\"Juan\",594" de donde sale? Es algo muy raro, ya que no sigue un patrón... Las comillas no entrecierran ningún dato y las comas no separan nada ya que a veces están dentro de las comillas. – Iñigo Irigoyen Erquicia Nov 28 '18 at 09:42
  • lo único que se me ocurre es que hagas el split por la "," y por cada uno de los elementos que te devuelve, hacer el split por el salto de línea – xero399 Nov 28 '18 at 09:44
  • 4
    @xero399 Split recibe un regex, puedes usar un separador como `",|\\n"`, que significa "coma o salto de línea" – Pablo Lozano Nov 28 '18 at 09:46
  • Muchas gracias, me funcionó – Ulyses Evans Nov 28 '18 at 10:03

2 Answers2

3

Una posible solución es que primero conviertas todos los delimitadores al mismo tipo con un replace y luego ya hagas el Split, en el siguiente ejemplo convierto el \n en , y luego ya hago el Split.

   String entry = "12345,\"Marcos\",132\n\"Juan\",594";

   entry = entry.replace("\n", ",");
   String[] output = entry.split(",");

   for (int i = 0; i < output.length; i++){
       System.out.println(output[i]);
   }

O mejor aún, como ha dicho @Pablo Lozano en los comentarios el split permite un Regex, así que lo puedes hacer directamente ahí indicando que sea un \n o una , :

   String entry = "12345,\"Marcos\",132\n\"Juan\",594";

   String[] output = entry.split("\\n|,");

   for (int i = 0; i < output.length; i++){
       System.out.println(output[i]);
   }
kronosXXI
  • 463
  • 2
  • 10
0

creo que la solucion seria algo asi:

String string ="12345,\"Marcos\",132\n\"Juan\",594";
String[] partes = string.split("lo que quieres que salte");
//Creamos una parte para cada uno
String part1 = partes[0];
String part2 = partes[1];
Iván Montero
  • 401
  • 3
  • 14