gpt4 book ai didi

java - java中如何删除二维数组的列

转载 作者:行者123 更新时间:2023-11-30 07:01:41 24 4
gpt4 key购买 nike

我想删除具有 NA 值的列。

例如,当 array[i,j] 为 NA 时,我想删除第 i 列。find2DIndex查找NA值,removeNA是删除第i列。

尽管努力删除 NA 值,数组中仍然存在 NA 值..

private static Point find2DIndex(Object[][] array, Object search) {

if (search == null || array == null) return null;

for (int rowIndex = 0; rowIndex < array.length; rowIndex++ ) {
Object[] row = array[rowIndex];
if (row != null) {
for (int columnIndex = 0; columnIndex < row.length; columnIndex++) {
if (search.equals(row[columnIndex])) {
return new Point(rowIndex, columnIndex);
}
}
}
}
return null;
}


public static String[][] removeNA(String[][] str){

Point index = new Point();

if((index= find2DIndex(str,"NA"))!=null){
for(int j=0;j<49;j++){
for(int i=index.y;i<str.length/49;i++){
str[j][i]= str[j][i+1];
}//j열 모두 지우기
}
}
return str;
}


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

String[] strArr = parse(str); // String 배열에 차곡차곡 담겨서 나온다.

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;

}
}

最佳答案

您无法更改现有数组数据结构的维度,除非您销毁它并使用新维度重建它(您必须重新初始化并重新填充)。

你可以尝试这样的事情。

public int[][] deleteColumn(int[][] args,int col)
{
int[][] nargs;
if(args != null && args.length > 0 && args[0].length > col)
{
nargs = new int[args.length][args[0].length-1];
for(int i=0; i<args.length; i++)
{
int newColIdx = 0;
for(int j=0; j<args[i].length; j++)
{
if(j != col)
{
nargs[i][newColIdx] = args[i][j];
newColIdx++;
}
}
}
}
return nargs;
}

关于java - java中如何删除二维数组的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40799356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com