2016-12-02 95 views
0

我在一個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不知道是什麼問題

+6

您正在使用==而不是equals()方法的功能! http://stackoverflow.com/questions/7520432/what-is-the-difference-between-vs-equals-in-java –

+0

基本上,你想刪除數組中的某一列? – AxelH

+0

是的, 我想刪除我沒有選擇的列。 – kimHS

回答

0

你不應該比較使用==,而不是你應該使用.equals()方法二串實例。

所以,在你的情況下,代碼

strArr[1][i]=="variable" 

必須用

strArr[1][i].equals("variable") 

退房這個答案Comparing String in Java

+0

謝謝!我忘了。謝謝 – kimHS

+0

我修改了。但結果不變 – kimHS

0

只是爲了一致性,我建議你忽略標籤(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; 
} 
+1

變量在哪裏比較?我做了一個更正,但結果並不好。 – kimHS

+0

[] 。 。 。 。 。 。 2 ... ... ...... 7 – Marco

+0

[ [1 ... 100], [1 ... 100], [1 ... 100], ] 你應該有這樣的事情。你不需要String。 你知道colum1是變量1。 – Marco

相關問題