我对 Java 有疑问。
假设 n 是一个整数,我想创建一个 StringBuffer 数组,其中包含所有 26^n 个字母组合,并按字典顺序排列。我获得 ArrayIndexOutOfBoundsException。
我写了这堂课:
public static StringBuffer[] creaTabellaTotale(int n, char[] a) {
StringBuffer[] tabella = new StringBuffer[ pow(26, n)];
for(int w =0; w < pow(26, n); w++)
tabella[w] = new StringBuffer("");
for(int h = 1; h <= n ; h++){
for(int u =0; u < pow ( 26, h-1); u++){
for (int j = 0; j<26; j++){
for( int x =pow(26, n-h+1)*u + pow(26, n-h)*j; x< pow(26, n-h+1)*u + pow(26, n-h)*(j+1); x++)
tabella[x] = tabella[x].append(a[j]);
}
}
}
return tabella;
}
这里 a[] 是一个包含按字母顺序排列的 26 个字母的数组;我重写了pow(),它的原型是int pow(int b, int e)。我找不到错误。