code: public static String[] parseCSV(String input) {
      List<String> output = new ArrayList<>();
      StringBuffer sb = new StringBuffer();
      for (int i = 0; i < input.length(); i++) {
        char c = input.charAt(i);
        switch (c) {
          case ',':
            output.add(sb.toString());
            sb = new StringBuffer();
            continue;
          case '\\':
            i++;
            c = input.charAt(i);
            // fall through to:
          default:
            sb.append(c);
        }
      }
      output.add(sb.toString());
      return output.toArray(new String[output.size()]);
    }
docs: Convert backslash-escaped comma-delimited string into String array. As described in SRC-CDP
  spec section 5.2.1.2, these strings are comma-delimited, but commas can be escaped with a
  backslash "\". Backslashes can also be escaped as a double-backslash.
  
  @param input the unparsed string, e.g. "veni\, vidi\, vici,c:\\foo\\bar,c:\\I came\, I
  \\saw\\\, I conquered"
  @return the string array resulting from parsing this string