Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;java.lang.ArrayIndexOutOfBoundsException“;尝试创建棋盘以创建QRcode的计时模式时_Java_Arrays - Fatal编程技术网

&引用;java.lang.ArrayIndexOutOfBoundsException“;尝试创建棋盘以创建QRcode的计时模式时

&引用;java.lang.ArrayIndexOutOfBoundsException“;尝试创建棋盘以创建QRcode的计时模式时,java,arrays,Java,Arrays,我的作业是创建一个QR码生成器,我一直在创建QR码基矩阵的两个计时模式。 因此,我正在寻找一种方法,使用2D数组创建一个棋盘,然后仅使用第一列和第一列,依次用一个黑点、一个白点、一个黑点等填充另外两个数组。然后我用第一行填充水平计时模式数组,用第一列填充垂直计时模式。为此,我使用两种方法:1)创建检查板并“填充”计时模式,2)声明两个计时模式数组,然后填充它们 这是我创建的代码: //method to create the checkboard public static int[][] ti

我的作业是创建一个QR码生成器,我一直在创建QR码基矩阵的两个计时模式。 因此,我正在寻找一种方法,使用2D数组创建一个棋盘,然后仅使用第一列和第一列,依次用一个黑点、一个白点、一个黑点等填充另外两个数组。然后我用第一行填充水平计时模式数组,用第一列填充垂直计时模式。为此,我使用两种方法:1)创建检查板并“填充”计时模式,2)声明两个计时模式数组,然后填充它们

这是我创建的代码:

//method to create the checkboard
public static int[][] timingPatternFilling (int[][] timingPattern) {
    for (int i=0;i<timingPattern[0].length-1;i++)
        for (int j=0;j<=timingPattern[1].length-1;j++) 
            if (((i%2==0)&&(j%2==0))||((i%2==1)&&(j%2==1))) { 
                timingPattern[i][j] = B;
                System.out.print(timingPattern[i][j]);
            } 
            else {
                timingPattern[i][j] = W;
                System.out.print(timingPattern[i][j]);
            }
        System.out.println();
    return timingPattern;
}
//method to create the Timing Pattern 
public static void addTimingPatterns(int[][] matrix) {
    // creation of the Timing Pattern (The calculation "matrix[1].length-2*(finderPatternSize+1)" allow to calculate the timingPattern length depending on the size of the matrix minus 2 times the size of the finder Pattern size
    int timingPatternVertical[][] = new int [matrix[0].length-(2*whiteSquareSize)][timingPatternLength];
    int timingPatternHorizontal[][] = new int [timingPatternLength][matrix[1].length-(2*whiteSquareSize)];
    //filling with the Black Pattern
    timingPatternFilling(timingPatternVertical);
    timingPatternFilling(timingPatternHorizontal);
//创建棋盘的方法
公共静态int[][]计时模式填充(int[][]计时模式){

for(int i=0;i您的
for
循环看起来很奇怪。请尝试以下方法:

for (int i=0;i<timingPattern.length;i++)
    for (int j=0;j<=timingPattern[i].length;j++) 

for(int i=0;iit确实与数组的长度有关。这意味着您试图获取与数组大小相同或更大的索引,但该索引不存在(或负id)