2017-03-25 1 views
0

없이 새로운 배열을 만듭니다. I가 시도자바 내가이 배열이 제로

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]; 

을하지만 그렇지 않습니다 왜 그런지 이해할 수 없습니다. 내가 for 루프를하지 않고 그것을 할 경우

은 다음과 같이이다 : `만약 (! 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-loop를 사용하여 수행하는 경우 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처럼 두 개의 루프와 두 차원 배열을 반복해야 제로로부터의 반점?

여기서 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)); 
     } 
    }