public class Csv {

    private static final String celldelim = ",";
    private static final String linedelim = "\n";

    private int lineLength;
    private int cellLength;
    private String[][] data;


    // -------------------------------------------------------
    //  constructdor
    // -------------------------------------------------------

    public Csv() {
        this( "" );
    }
    public Csv( String csvstring ) {
        parse( csvstring );
    }


    // -------------------------------------------------------
    //  public methods
    // -------------------------------------------------------

    public String[][] getData() { return data ; }

    public void parse( String csvstring ) {

        String[] lines = csvstring.split( linedelim );

        lineLength = lines.length;
        cellLength = countCellLength( lines );

        data = new String[lineLength][cellLength];

        for( int i=0 ; i < lines.length ; i++ ) {
            data[i] = lineToCells( lines[i] );
        }

    }

    
    // -------------------------------------------------------
    //  private methods
    // -------------------------------------------------------

    private int countCellLength( String[] lines ) {

        int length = lineToCells( lines[0] ).length ;
        
        for( int i=0 ; i < lines.length ; i++ ) {
            if( length != lineToCells( lines[i] ).length ) {
                length = 0;
                break;
            }
        }

        return length;
    }

    private String[] lineToCells( String line ) {
        return line.split( celldelim );
    }

}

