``我是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];
}
}
您还可以使用每行中列数不相同的数组(最后一行只有一列)。