2016-01-09 3 views
0

привет, я ранее использовал этот код для перебора моего массива по строкам, однако я хочу сделать это по столбцу в настоящее время, лучший вариант - иметь два для циклов, i и j и затем добавьте [j] [i]?петля над массивом

StringBuffer decryptedText = new StringBuffer(); 
     for(char [] i : array){ 
     for (int j = 0; j < i.length; j++) { 
     if (i[j] !=0){ 
      decryptedText.append(i[j]); 
     } 
     } 

     } 
     decryptedText.toString(); 
      System.out.println("\nDecrypted Text:\n" + decryptedText); 
+0

Вы должны предпочесть 'StringBuilder 'to' StringBuffer', а цикл 'for-each' не будет таким же полезным. Кроме того, вы не можете получить количество столбцов до тех пор, пока вы не повторите строки. –

+0

Чтобы принять ответ, щелкните отмеченную метку рядом с началом вопроса. – Blue

ответ

0

Это будет работать только если массив не рваный

StringBuffer text = new StringBuffer(); 
int rowLen = array.length; 
int colLen = array[0].length; 
for(int a=0; a<colLen; a++) 
    for(int b=0; b<rowLen; b++) 
     if(array[b][a]!=0) 
      text.append(array[b][a]); 
System.out.println(text.toString()); 
+0

спасибо, новый для всего этого, медленно учиться –

0

Как уже упоминалось в комментариях for-each не поможет вам, когда хотите получить доступ к многомерный столбец массива мудр. Простые for петли выполнит задачу.

Ниже приведен пример фрагмент кода

void iterateColumnWise() { 
    char data[][] = new char[SIZE][]; 
    for(int i=0; i<SIZE; i++) { 
     for(int j=0; j<data[i].length; j++) { 
      System.out.println(data[j][i]); 
     } 
    } 
} 

Или вы можете получить доступ данные одного столбца из многомерного массива в

void iterateColumnWise(int column) { 
    char data[][] = new char[SIZE][]; 
    for(int i=0; i<SIZE; i++) { 
     System.out.println(data[i][column]); 
    } 
} 
Смежные вопросы