gpt4 book ai didi

java - 如何使用java获取二维数组中的特定列

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

当搜索值存在于数组中时,我选择该列并保存它们。例如

1 2 3 4 5 6
A B C D E F
G H I J K L

我想创建一个包含x==1||x==4的列下面的列将是我想要的结果

1 4
A D
G J

下面的代码是我的二维数组代码。我从 csv 文件和二维数组创建一维数组。当搜索值存在时,我选择该列并保存它们。

    String str = readCSV(new File("D:/sample_folder/sample1.csv"));
String[] strArr = parse(str); // It comes out in a row in an String array.
int varNumber = 45;
int rowNumber = strArr.length/varNumber;

String[][] Array2D = new String[varNumber][rowNumber];

for(int j=0;j<varNumber;j++)
{
for(int i=0; i<rowNumber;i++)
{
String k = strArr[i*varNumber+j];
Array2D[j][i]= k;
}
} //make 2D array

最佳答案

您可以浏览二维数组的行并选择所需的列。

for(int j=0;j<rowNumber;j++)
{
// index starts from 0
yourArray[j][0] = array2D[j][0];
yourArray[j][1] = array2D[j][3];
}

或者更动态地你可以这样写:

int[] columnsYouWant = {0, 3};
for(int j=0;j<rowNumber;j++)
{
for(int c=0;c<columnsYouWant.length;c++)
{
yourArray[j][c] = array2D[j][columnsYouWant[c]];
}
}

如果你想使用 if (x == 1 || x == 4) :

for(int j=0;j<rowNumber;j++)
{
column = 0;
for(int c=0;c<columnNumber;c++)
{
x = c + 1;
if (x == 1 || x == 4)
yourArray[j][column++] = array2D[j][c];
}
}

我可能会弄错。您似乎还希望列以 1 或 4 开头。在这种情况下,如果您的第一行有数字,其余行按字母顺序排列。您应该找到以 1 或 4 开头的列。

for(int j=0;j<colNumber;j++)
{
x = array2d[0][j];
if ( x == 1 || x == 4 ) {
// add you j to an array
}
}

在这种情况下,您会知道您想要哪些列,并且您可以使用我的答案中的第二段代码来创建包含您想要的列的二维数组。

关于java - 如何使用java获取二维数组中的特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40906735/

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