2017-03-25 5 views
0

ことなく、新しい配列を作成します。私は新しい配列を作成し始めたJavaは、私はこの配列を持つゼロ

:私だけにしようとしている

String[][] zero = new String[hej.length][hej[0].length];

は、ループのためにこれをゼロでない要素を挿入します

for(int c = 0; c < zero.length; c++) { 
    int i = 0; 
    if(hej[i][c] != "0") { 
    zero[i][c] = hej[i][c]; 

をしかし、それはしていませんなぜ私は理解できません。

私はループのために、それはこのようなものだせずにそれを行う場合: `もし(!HEJ [0] [0] = "0") ゼロ[0] [0] = HEJ [0] [0];

if(hej[0][1] != "0") 
    zero[0][1] = hej[0][1]; 

if(hej[0][2] != "0") 
    zero[0][2] = hej[0][2]; 

if(hej[0][3] != "0") 
    zero[0][3] = hej[0][3];` 

しかし、私はまだ、削除されたゼロのためのスポットなしで配列を短くする方法がわかりません。

  • 私のforループがうまくいかない理由とforループを[] []配列全体に渡す方法を理解できる人は誰ですか?

  • ゼロからのスポットなしで新しいダイナミックアレイを同時に作成する方法を理解できる人は誰ですか?

ありがとう!

+0

そして内側のリストをフィルタリングできますか? forループを使用すると、2つのネストされたループが必要になります。 2番目のループは内側のリストをチェックします。 – Carcigenicate

+0

はい。ごめんなさい。編集できますか? –

+0

あなたはかなり簡単にすることができます。あなたのポストの下で "編集"を押してください。 – Carcigenicate

答えて

0

なぜ私のforループがうまくいかないのかを理解できる人なら誰でも forループを[] []配列全体に渡すことができますか?あなたは私が同時にずに、新しい 動的配列を作成する方法を理解するのに役立ちます

public static void eliminateZerosWithStaticArray() throws Exception { 
    String[][] hej = {{"9.8", "0", "hi", "0"}, {"0", "3.4", "yes", "no"}}; 
      int width = hej.length; 
      int height = hej[0].length; 
      String[][] zero = new String[width][height]; 

      for(int c=0; c < width; c++) { 
       for(int d=0,i=0; d<height; d++) { 
        if(!"0".equals(hej[c][d])) { 
         zero[c][i] = hej[c][d]; 
         i++; 
        } 
       } 
      } 
      System.out.println("Printing the values within zero array ::: "); 
      for(int i=0; i<zero.length; i++) { 
       for(int j=0; j<zero[i].length; j++) { 
        System.out.println("The values are : "+ zero[i][j]); 
       } 
      } 
    } 

誰もが次のようにfor inside a for loopのような二つのループで2次元配列を反復処理する必要が

ゼロからのスポット?

ここで、ArrayListが存在します。あなたのタイトルは "配列"と言われるのですか?答えはここにあります。add elements to add elements dynamically into an array in java.

public static void eliminateZerosWithDynamicArray() throws Exception { 
     String[][] hej = {{"9.8", "0", "hi", "0"}, {"0", "3.4", "yes", "no"}}; 
     int width = hej.length; 
     int height = hej[0].length; 
     List<List<String>> result = new ArrayList<List<String>>(width); 

     //Iterate the original array 
     for(int c=0; c < width; c++) { 
      List<String> templist = new ArrayList<String>(); 
      for(int d=0; d<height; d++) { 
       if(!"0".equals(hej[c][d])) { 
        templist.add(hej[c][d]); 
       } 
       result.add(templist); 
      } 
     } 
     //Print the list content 
     for(int c=0; c<result.size(); c++) { 
      System.out.println("List content : "+result.get(c)); 
     } 
    } 
関連する問題