package com.akjava.gwt.lib.client;
import java.util.ArrayList;
import java.util.List;
/*
* quote not supported
* TODO merge csvUtils
*/
public class SimpleCSVUtils {
public static List<String[]> csvToArrayList(String text,char separator){
return csvToArrayList(text,separator,"\n",false);
}
public static List<String[]> csvToArrayList(String text,char separator,String lineSeparator){
if(text.length()==0){
return new ArrayList<String[]>();
}
String[] lines=text.split(lineSeparator);
return csvToArrayList(lines,separator,false);
}
public static List<String[]> csvToArrayList(String text,char separator,boolean skipEmpty){
if(text.length()==0){
return new ArrayList<String[]>();
}
text=ValueUtils.toNLineSeparator(text);
return csvToArrayList(text,separator,"\n",skipEmpty);
}
public static List<String[]> csvToArrayList(String text,char separator,String lineSeparator,boolean skipEmpty){
if(text.length()==0){
return new ArrayList<String[]>();
}
String[] lines=text.split(lineSeparator);
return csvToArrayList(lines,separator,skipEmpty);
}
public static List<String[]> csvToArrayList(String[] lines,char separator,boolean skipEmpty){
List<String[]> csv=new ArrayList<String[]>();
for (int i = 0; i < lines.length; i++) {
if(skipEmpty &&lines[i].equals("")){
}else{
csv.add(lines[i].split(""+separator));
}
}
return csv;
}
/*
* not copy
*/
public static String[][] listToArray( List<String[]> list){
String[][] ret=new String[list.size()][];
for(int i=0;i<list.size();i++){
ret[i]=list.get(i);
}
return ret;
}
public static int[][] stringArrayToInt(String[][] values){
int vs[][]=new int[values.length][];
for(int i=0;i<values.length;i++){
vs[i]=new int[values[i].length];
for(int j=0;j<values[i].length;j++){
try{
vs[i][j]=Integer.parseInt(values[i][j]);
}catch(Exception e){
}
}
}
return vs;
}
public static String toCSV(int[][] values){
String vs[][]=new String[values.length][];
for(int i=0;i<values.length;i++){
vs[i]=new String[values[i].length];
for(int j=0;j<values[i].length;j++){
vs[i][j]=""+values[i][j];
}
}
return toCSV(vs);
}
/**
*
* @param values
* @return
*/
public static String toCSV(String[][] values){
StringBuilder builder=new StringBuilder();
for(int y=0;y<values.length;y++){
for(int x=0;x<values[y].length;x++){
builder.append(values[y][x]);
if(x!=values[y].length-1){
builder.append(",");
}
}
if(y!=values.length-1){
builder.append("\n");
}
}
return builder.toString();
}
public static String toCSV(List<String[]> values,char separator){
StringBuilder builder=new StringBuilder();
for(int y=0;y<values.size();y++){
for(int x=0;x<values.get(y).length;x++){
builder.append(values.get(y)[x]);
if(x!=values.get(y).length-1){
builder.append(separator);
}
}
if(y!=values.size()-1){
builder.append("\n");
}
}
return builder.toString();
}
public static String toCSV(String[] values,char separator){
StringBuilder builder=new StringBuilder();
for(int x=0;x<values.length;x++){
builder.append(values[x]);
if(x!=values.length-1){
builder.append(separator);
}
}
return builder.toString();
}
}