如何使用java从二维数组中获取特定列
问题描述:
我在一个String二维数组中存储了96个变量。我想从中获得49个变量。 例如如何使用java从二维数组中获取特定列
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级的变量(例如变量1,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;
}
,但结果是same..i不知道是什么问题
答
你不应该比较使用==
,而不是你应该使用.equals()
方法二串实例。
所以,在你的情况下,代码
strArr[1][i]=="variable"
必须用
strArr[1][i].equals("variable")
退房这个答案Comparing String in 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;
}
您正在使用==而不是equals()方法的功能! http://stackoverflow.com/questions/7520432/what-is-the-difference-between-vs-equals-in-java –
基本上,你想删除数组中的某一列? – AxelH
是的, 我想删除我没有选择的列。 – kimHS