在处理中减少多维数组以删除空的奇数行

时间:2012-05-28 15:53:30

标签: multidimensional-array processing reduce

我有以下问题,我将.csv文件导入名为csv的二维数组。

每个奇数行都有空条目,因此从0(0,2,4,... 606)开始的偶数行都填充了与我相关的数据

所以,2d数组的大小是609,560,它们来自打印csv.length和csv [1] .length

我需要一个大小为304x561的文件,我称之为csv2。

但是,以下代码给出了错误

String rows[] = loadStrings("cit2.txt");
String [][] csv; // initialize csv file
String [][] csv2; // initialize reduced csv file
int csvWidth=0;

//calculate max width of csv file
for (int i=0; i < rows.length; i++) {
  String [] columns = split(rows[i],'\t'); 
  if (columns.length>csvWidth){
    csvWidth=columns.length;
  }
}


//create csv array based on # of rows and columns in csv file
csv = new String [rows.length][csvWidth];

//parse values into 2d array
for (int i=0; i < rows.length; i++) {
  String [] temp = new String [rows.length];
  //strDelimiter = (strDelimiter || ",");

  temp= split(rows[i], '\t');
  for (int j=0; j < temp.length; j++){
   csv[i][j]=temp[j];
  }
}

//test
println(csv[604][0]);
println(csv.length);
println(csv[0].length);

int row = csv.length;
println(((row-1)/2));
int newrow = 0;

int col = csv[0].length;
//int row = csv.length;


csv2 = new String [((row-1)/2)-1][col];

for (int c=0; c <csv[0].length; c++)
{
  for(int r=0; r<(csv.length)-1; r = r+2)
  {
    String temp = csv[r][c]; 
    newrow = newrow +1; 
    csv2[newrow][c]= temp;
  }
}

任何想法?

0 个答案:

没有答案