2016-12-02 5 views
0

私はString 2D配列に96個の変数を格納しました。私はそれから49の変数を取得したい。例Javaを使用して2D配列から特定の列を取得する方法

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 

私の目的のために :私は(そのような変数1、variable3は、変数6、...、variable86など)45個の変数を選択した場合は、その後、私は2次元配列を以下のようにしたいです。

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()メソッドを使用する必要があります==を使用して、2つの文字列のインスタンスを比較してはならない問題

+6

equals()関数の代わりに==を使用しています。 http://stackoverflow.com/questions/7520432/what-is-the-difference-between-vs-equals-in-java –

+0

基本的に、配列のいくつかの列を削除したいですか? – AxelH

+0

はい、 私が選択しなかった列を削除したいと思います。 – kimHS

答えて

0

あるかわからないです。

だから、あなたの場合には、コード

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]、 ] このようなsomethigがあるはずです。内部にStringは必要ありません。 あなたはcolum1が変数1であることを知っています。 – Marco

関連する問題