public static String[] toStringArray(String line){
  List<String> row=new ArrayList<>();
  boolean inQuotedField=false;
  int fieldStart=0;
  final int len=line.length();
  for (int i=0; i < len; i++) {
    char c=line.charAt(i);
    if (c == FIELD_SEPARATOR) {
      if (!inQuotedField) {
        addField(row,line,fieldStart,i,inQuotedField);
        fieldStart=i + 1;
      }
    }
 else     if (c == FIELD_QUOTE) {
      if (inQuotedField) {
        if (i + 1 == len || line.charAt(i + 1) == FIELD_SEPARATOR) {
          addField(row,line,fieldStart,i,inQuotedField);
          fieldStart=i + 2;
          i++;
          inQuotedField=false;
        }
      }
 else       if (fieldStart == i) {
        inQuotedField=true;
        fieldStart++;
      }
    }
  }
  if (len > 0 && fieldStart <= len) {
    addField(row,line,fieldStart,len,inQuotedField);
  }
  return row.toArray(new String[row.size()]);
}

public static String [ ] toStringArray ( String line ) { List < String > row = new ArrayList < > ( ) ; boolean inQuotedField = false ; int fieldStart = 0 ; final int len = line . length ( ) ; for ( int i = 0 ; i < len ; i ++ ) { char c = line . charAt ( i ) ; if ( c == FIELD_SEPARATOR ) { if ( ! inQuotedField ) { addField ( row , line , fieldStart , i , inQuotedField ) ; fieldStart = i + 1 ; } } else if ( c == FIELD_QUOTE ) { if ( inQuotedField ) { if ( i + 1 == len || line . charAt ( i + 1 ) == FIELD_SEPARATOR ) { addField ( row , line , fieldStart , i , inQuotedField ) ; fieldStart = i + 2 ; i ++ ; inQuotedField = false ; } } else if ( fieldStart == i ) { inQuotedField = true ; fieldStart ++ ; } } } if ( len > 0 && fieldStart <= len ) { addField ( row , line , fieldStart , len , inQuotedField ) ; } return row . toArray ( new String [ row . size ( ) ] ) ; }
converts csv line to string array .
