我在尝试通过字节数组循环时遇到了一些问题。基本上我有两个嵌套for循环。外部循环将循环256次,内部循环会循环前8个字节的字节数组。如何确定java中的字节数组是否全为零
outerloop:
for (int i = 0; i < 256; i++){
// code
byte [] first8bytes = Arrays.copyOfRange(byteArray, 0, 8);
for(int k = 0; k < first8bytes.length; k++){
if(k != 0){
}else{
System.out.println(Arrays.toString(first8bytes));
break outerloop;
}
}
}
我所试图做的是检查first8bytes全为0。如果其中一个不为零,我会回到outerloop。但是,通过这样做,当我尝试打印出前8个字节时,结果为[-26,0,-28,-49,64,45,66,66]。
我想在爆发之前得到所有0的前8个字节。我知道我的逻辑有些错误,但我不知道如何解决这个问题。
在此先感谢!
更新
boolean all0 = true;
for (int i = 0; i < 256; i++){
byte [] first8bytes = Arrays.copyOfRange(byteArray, 0, 8);
for(int k = 0; k < first8bytes.length && all0; ++k){
if(first8bytes[k] != 0) all0 = false;
}
if(all0){
System.out.println(Arrays.toString(first8bytes));
break;
}}
。在你的例子中,第二个字节是0 ... – John3136
但我该如何解决它?我知道逻辑是错误的,我甚至添加了布尔变量来尝试它,但它导致相同 – hyperfkcb
你真的试图检查'byteArray' 256次相同的8个字节?你确定你不想每次通过外循环时在'byteArray'中选择不同的范围吗?现在我很难搞清楚你在问什么。 – Gray