Java 无法在阵列中确定和定位并在阵列中向前跳过

Java 无法在阵列中确定和定位并在阵列中向前跳过,java,arrays,loops,Java,Arrays,Loops,我正在写一个程序,从一个图像中读取条形码,然后生成一个1和0的数组,从中我生成一个0-9之间的数字数组。要做到这一点,我必须以7位序列的原始数组,并将它们与另一个数组进行比较,以找出该模式代表的数字。条形码中间有5条线将左图案与右图案分开(这意味着是左图案的光学倒数)。我在抓住阵型的中间位置和向前跳五个位置时遇到了问题。它是95位6,其中的开式和闭式,不代表数字,中间的5位模式。我在45岁时接住它,然后跳到50岁,但这并没有产生正确的结果。我检查了好几次,以确保这些值是正确的,它们看起来是正确的

我正在写一个程序,从一个图像中读取条形码,然后生成一个1和0的数组,从中我生成一个0-9之间的数字数组。要做到这一点,我必须以7位序列的原始数组,并将它们与另一个数组进行比较,以找出该模式代表的数字。条形码中间有5条线将左图案与右图案分开(这意味着是左图案的光学倒数)。我在抓住阵型的中间位置和向前跳五个位置时遇到了问题。它是95位6,其中的开式和闭式,不代表数字,中间的5位模式。我在45岁时接住它,然后跳到50岁,但这并没有产生正确的结果。我检查了好几次,以确保这些值是正确的,它们看起来是正确的,但不起作用。以下是字符串形式的1和0的原始集合:

10100110010010011011110101000110110001010111101010100010010010001110100111001011001101101100101
这里的代码num是原始数组(如上所述),numTemp是我正在使用的当前7位模式(以及num的子集)

前6个图案正确,但下一个图案(粗体)应为0111011,因此以下图案不正确


非常感谢您的帮助

你确定粗体值吗,因为据我所知,在50-57范围内,我得到了1000100,但不管怎么说,这就是我想到的,也许它会帮助你。我使用数据作为字符串,您可以使用数组或任何您需要的东西对其进行重新建模

for (int i = 3; i < (CODE.length() - 3); i += 7) {
        if (i == 45) {
            i = 43;
        } else {
            printOut("line " + i + " - " + (i+7) + " = "+ CODE.substring(i, i+7));
        }
    }
for(int i=3;i<(code.length()-3);i+=7){
如果(i==45){
i=43;
}否则{
打印输出(“行”+i+“-”+(i+7)+“=”+代码子字符串(i,i+7));
}
}

原始数组的确切格式是什么?您的意思是什么?这是一个一维整数数组。了解格式很重要;如果它是一个只有0或1的整数数组,那么您可能需要查看
位集
classCorrect。0代表一条白线,1代表一条黑线。不幸的是,由于这是一个赋值,我必须使用数组。啊,是的,应该是你说的,我不小心把它放在了左边。我将不得不等到今晚晚些时候再尝试你的解决方案,尽管我认为这有点超出我的知识范围。
>0011001 
>0010011 
>0111101 
>0100011 
>0110001 
>0101111 
>**1001111** 
>0010010 
>0100011 
>1010011 
>1001011 
>0011011 
for (int i = 3; i < (CODE.length() - 3); i += 7) {
        if (i == 45) {
            i = 43;
        } else {
            printOut("line " + i + " - " + (i+7) + " = "+ CODE.substring(i, i+7));
        }
    }