[英]how to get specific column from 2D array using java
我将96个变量存储在String 2D数组中。 我想从中获取49个变量。 例如
variable1 variable2 variable3 variable4...... variable96 -> Original array : 97 variables
5 6 3 5 ...... 6
6 8 8 1 ...... 9
10 4 4 9 ...... 1
. .
. .
. .
2 ... ... ...... 7
我的目的:如果我选择45个变量(例如variable1,variable3,variable6,....,variable86),那么我想创建以下2D数组。
variable1 variable3 variable6 ...... variable86 -> modified array: selected 45 variables
5 3 15 ...... 2
6 8 21 ...... 2
10 4 9 ...... 6
. .
. .
. .
2 ... ... ...... 7
我尝试使用以下代码。 但是结果为null null null null null....
public static String[][] haveVariable(String[][] strArr){
String[][] twoDArray = new String[strArr.length][strArr[0].length];
int copy = 0;
for(int i=0; i<strArr.length;i++){
if(strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="LSU_rO2Sig_mp[1]"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"
||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]==""||strArr[1][i]=="variable"||strArr[1][i]=="variable"
||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable"||strArr[1][i]=="variable")
{ String tmp = null;
for(int j=0; j<strArr[1].length;j++){
tmp= strArr[i][j];
twoDArray[copy][j]=tmp;
System.out.println(tmp);
}
copy++;
}
}
return twoDArray;
}
我修改代码。 但结果是一样的...
public static String[][] haveVariable(String[][] strArr){
String[] varName= {"variable1", "variable2", "variable3", "variable4"};
int selectedVariable= 45;// number of original data's variable
String[][] twoDArray = new String[selectedVariable][strArr[0].length];
int copy = 0;
for(int i=0; i<selectedVariable;i++){
if(strArr[i][0].equals(varName)){
for(int j=0; j<strArr[0].length;j++){
String tmp= strArr[i][j];
twoDArray[copy][j]=tmp;
copy++;
}
}
}
return twoDArray;
}
但是结果是一样的..我不知道是什么问题
您不应使用==
比较两个字符串实例,而应使用.equals()
方法。
因此,在您的情况下,代码
strArr[1][i]=="variable"
必须替换为
strArr[1][i].equals("variable")
看看这个答案Java比较字符串
为了保持一致性,我建议您忽略对象内的标签(varable1,variable2 ...)。 您的易记名称是您的标签。 给定2DArray,您知道每个列都引用一个变量。 (您可以使用文档进行指定)。
public static int[][] haveVariable(String[][] strArr, int selectedVariable){
int[][] twoDArray = new int[selectedVariable][strArr[0].length];
int copy = 0;
for(int i=0; i<selectedVariable;i++){
for(int j=0; j<strArr[0].length;j++){
tmp= strArr[i][j];
twoDArray[i][j]=tmp;
System.out.println(tmp);
}
}
return twoDArray;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.