如何使用Java 2Darray

时间:2016-11-24 13:08:05

标签: java arrays csv

我做编码,直到读取csv文件并输入2d数组。 但我不知道如何选择特定的49变量并删除NA值..

我想阅读包含第97列的csv文件。 步骤1。选择特定的49列并删除其他

第二步。如果行中存在NA,我将删除该行。 例如)如果a [i,j] = na,我将删除[i,]。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;    

public class CSVReaderByStream { 

    public static String readCSV(File csvFile) {
        BufferedReader bufferedReader = null;
        StringBuffer stringBuffer = new StringBuffer();

        try {
            bufferedReader = new BufferedReader(new FileReader(csvFile));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        try {
            String temp = null;
            while((temp = bufferedReader.readLine()) != null) {
                stringBuffer.append(temp+","); 
            }

            System.out.println(stringBuffer);
        } catch (IOException e) {
            e.printStackTrace();
        }           

        return stringBuffer.toString();
    }

    public static String[] parse(String str) {
        String[] strArr = str.split(",");
        return strArr; 
    }

    public static String[][] removeNA(String[][] str){
        String stringToRemove = "NA";
        for(int i=0;i<49;i++){
            for(int j=0;j<str.length/49;j++){

                if(str[i][j]=="NA"){
                    for(int k=0;k<str.length/49;k++){
                        str[i][k]="9999";
                    }                       
                }
            }
        }
        return str;
    }       

    public static void main(String[] args) {
        String str = readCSV(new File("D:/sample.csv"));
        String[] strArr = parse(str); 

        String[][] Array2D = new String[27][45];

        for(int i=0; i<45;i++){
            for(int j=0;j<27;j++){
                String k = strArr[i*27+j];
                 Array2D[j][i]= k;                  
                    }
                }
        String[][] naArray2D=removeNA(Array2D);
            }
        }

0 个答案:

没有答案