I want to make 2D array that Na removed. If NA is in fifth column and second row, then I want to remove second row. my code's step] 1step: data loading (1D array) 2step: make 2D array 3step: find specific value's column and row 4step: its row remove from array
but result is so bad.. help me
public static String[][] removeNA(String[][] str,int varNumber){
String deleteMe="NA";
String[][] na2Arr= new String[varNumber][str.length/varNumber];
for(int i=0;i<varNumber;i++)
{
for(int j=0;j<str.length/varNumber;j++){
String tmp=str[i][j];
if(tmp.equals(deleteMe))//참이면 [i,j] 중 j가 포함된거 모두 제거
{
for(int k=0;k<varNumber;k++){
String tmp1=str[k][j+1];
na2Arr[k][j]=tmp1;
}
}
else{
for(int k=0;k<varNumber;k++){
String tmp1=str[k][j];
na2Arr[k][j]=tmp1;
}
}
}
}
return na2Arr;
}
public static void main(String[] args) {
String str = readCSV(new File("D:/sample2.csv"));
String[] strArr = parse(str); // String 배열에 차곡차곡 담겨서 나온다.
int varNumber = 45;
int rowNumber = strArr.length/varNumber;
String[][] Array2D = new String[varNumber][rowNumber];
for(int i=0; i<rowNumber;i++)
{
for(int j=0;j<varNumber;j++)
{
String k = strArr[i*varNumber+j];
Array2D[j][i]= k;
}
}
String[][] naArray2D=removeNA(Array2D,varNumber);
/* for(int i=0; i<naArray1D.length;i++){
System.out.println(naArray1D[i]);
}*/
for(int i=0;i<varNumber;i++){
for(int j=0;j<naArray2D.length/varNumber;j++){
System.out.println(naArray2D[i][j]);
}
System.out.println("**********************N A제거&2차원 배열**********************");
}
}
String[45][10]and one cell containsNA, then you want to remove that column so you get aString[45][9], is that it?