private char possibleDelimitadorCampsEntrada = '\"'; private char separadorEntrada = ','; /** * * @param fila un string separat amb estil csv * @return array de Strings amb un valor per cada camp separat correctament. */ public String[] filaCsvToArrString(String fila) { ArrayList strings = new ArrayList<>(); String str = ""; boolean entreCometes = false; for (int i = 0; i < fila.length(); i++) { if (fila.charAt(i) == possibleDelimitadorCampsEntrada) { if (i + 1 < fila.length()) { if ((fila.charAt(i + 1) == possibleDelimitadorCampsEntrada)) { // Escapar cometes str += fila.charAt(i); // Afegeixo unes cometes de les dues que hi han. i++; // i ja no cal mirar les següents } else { entreCometes = !entreCometes; } continue; } else if (i==fila.length()-1) { // evitar l'ultim possible delimitador de la linia break; } } if (fila.charAt(i) == separadorEntrada && !entreCometes) { strings.add(str); str = ""; } else { str += fila.charAt(i); } } strings.add(str); // ultim camp return strings.toArray(new String[strings.size()]); }