gpt4 book ai didi

java - "java.lang.ArrayIndexOutOfBoundsException"当尝试创建一个检查板来创建 QRcode 的计时模式时

转载 作者:行者123 更新时间:2023-12-01 22:21:27 27 4
gpt4 key购买 nike

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

这是我创建的代码:

//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);

因此,当我尝试运行该代码时,我收到以下错误消息: java.lang.ArrayIndexOutOfBoundsException。我认为这与数组的长度有关。

我该如何解决这个问题?

最佳答案

你的for循环看起来很奇怪。尝试这样的事情:

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

关于java - "java.lang.ArrayIndexOutOfBoundsException"当尝试创建一个检查板来创建 QRcode 的计时模式时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com