Установка значений 2-мерного массива в Java - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь установить двумерный массив алфавита в Java. Моя первая попытка (не работает):

char[][] arr=new char[4][7];
for(int r=0; r<arr.length; r++){
   for(int c=0; c<arr[r].length; c++){
      for(char i=65; i<91; i++){
         arr[r][c]=i;
         System.out.print(arr[r][c]);
      }
   }
   System.out.println();
}

Моя вторая попытка (работает, но кажется запутанной):

    char[][] arr2=new char[4][7];
    char i=65;
    for(int r=0; r<arr2.length; r++){
        for(int c=0; c<arr2[r].length; c++){
            arr2[r][c]=i;
            System.out.print(arr2[r][c]);
            if(i<91){
                i++;
            }
        }
        System.out.println();
    }

Я вроде понимаю, почему первая не работает, но я все еще хочу знать оптимальный путь для этого.

1 Ответ

0 голосов
/ 17 октября 2019

Рассмотрите возможность использования алфавита в качестве цикла и вычисления пункта назначения, а не

public static void main(String[ ] args) {
    char[][] alphabet = new char[4][7];
    char c = 'a';
    for (int i = 0; i < 26; i++) {
        alphabet[i/7][i%7] = c++;
    }

    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 7; j++) {
            System.out.print(alphabet[i][j]);
        }
        System.out.println();
    }
}
...