``我是Java的新手。
我要做的就是将A到Z存储在这样的2D数组中

A B C D E

F G H I J

K L M N O

P Q R S T

U V W X Y

ž

String alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 char[] alpha = alphabets.toCharArray;
 int k=0;
 char[][] cipher = new char[6][5];
 for(int i= 0;i<6;i++)
     {
       for(int j=0;j<5;j++)
           {
             cipher[i][j] = alpha[k];
             k++;
            }
     }


但这会引发ArrayIndexOutOfBounds异常,我希望数组填充26,其余字符保留为null。可能吗 ??

最佳答案

您可以在填充最后一个字母后使用中断来退出循环。

String alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] alpha = alphabets.toCharArray();
char[][] cipher = new char[6][5];
outerLoop : for(int i=0 ; i<cipher.length ; i++) {
   for(int j=0 ; j<cipher[0].length ; j++) {
       int k = i*cipher[0].length + j;
       if (k >= alpha.length) break outerLoop;
       cipher[i][j] = alpha[k];
   }
}


您还可以使用每行中列数不相同的数组(最后一行只有一列)。

09-05 20:12
查看更多