我做编码,直到读取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);
}
}