Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 2013-2014 sagyf Yang. The Four Group.
   */
  
  package com.github.sog.kit.common;
  
 
 import java.util.List;

.

Author(s):
sagyf yang
Version:
1.0 2014-01-31 17:57
Since:
JDK 1.6
 
 public class CsvKit {
 
 
     protected static final char   FIELD_SEPARATOR = ',';
     protected static final char   FIELD_QUOTE     = '"';
     protected static final String DOUBLE_QUOTE    = "\"\"";
     protected static final String SPECIAL_CHARS   = .;

    
Parse fields as csv string,
 
     public static String toCsvString(Object... elements) {
         StringBuilder line = new StringBuilder();
         int last = elements.length - 1;
         for (int i = 0; i < elements.lengthi++) {
             if (elements[i] == null) {
                 if (i != last) {
                     line.append();
                 }
                 continue;
             }
             String field = elements[i].toString();
 
             // check for special cases
             int ndx = field.indexOf();
             if (ndx == -1) {
                 ndx = field.indexOf();
             }
             if (ndx == -1) {
                 if (field.startsWith(.) || field.endsWith(.)) {
                     ndx = 1;
                 }
             }
             if (ndx == -1) {
                 ndx = CharKit.indexOfChars(field);
             }
 
             // add field
             if (ndx != -1) {
                 line.append();
             }
             field = StringUtils.replace(field.);
             line.append(field);
             if (ndx != -1) {
                 line.append();
             }
 
             // last
             if (i != last) {
                 line.append();
             }
         }
         return line.toString();
     }


    
Converts CSV line to string array.
 
     public static String[] toStringArray(String line) {
         List<Stringrow = Lists.newArrayList();
 
         boolean inQuotedField = false;
         int fieldStart = 0;
 
         final int len = line.length();
         for (int i = 0; i < leni++) {
             char c = line.charAt(i);
             if (c == ) {
                 if (!inQuotedField) {    // ignore we are quoting
                     addField(rowlinefieldStartiinQuotedField);
                     fieldStart = i + 1;
                 }
             } else if (c == ) {
                 if (inQuotedField) {
                    if (i + 1 == len || line.charAt(i + 1) == ) {    // we are already quoting - peek to see if this is the end of the field
                        addField(rowlinefieldStartiinQuotedField);
                        fieldStart = i + 2;
                        i++; // and skip the comma
                        inQuotedField = false;
                    }
                } else if (fieldStart == i) {
                    inQuotedField = true;    // this is a beginning of a quote
                    fieldStart++;            // move field start
                }
            }
        }
        // add last field - but only if string was not empty
        if (len > 0 && fieldStart <= len) {
            addField(rowlinefieldStartleninQuotedField);
        }
        return row.toArray(new String[row.size()]);
    }
    private static void addField(List<StringrowString lineint startIndexint endIndexboolean inQuoted) {
        String field = line.substring(startIndexendIndex);
        if (inQuoted) {
            field = StringUtils.replace(field.);
        }
        row.add(field);
    }
New to GrepCode? Check out our FAQ X