Java 解析麻烦!逻辑错误

Java 解析麻烦!逻辑错误,java,parsing,bytearray,Java,Parsing,Bytearray,我的代码中有一个小错误!我一定是瞎了,因为我似乎真的找不到,也弄不明白。我有一个字节数组列表。我正在解析每个数组中的前2个元素以及最后一个元素。如果我得到值-16、-11或-7,我想保留这些值。由于某些原因,未删除数组中的最后一个值。为什么会这样 你试过调试它吗 当你有b=-110 它通过了这个条件: if(b!= -15 && i + 2 < srec.length() && (Character.digit(srec.charAt(i + 2), 16)

我的代码中有一个小错误!我一定是瞎了,因为我似乎真的找不到,也弄不明白。我有一个字节数组列表。我正在解析每个数组中的前2个元素以及最后一个元素。如果我得到值-16、-11或-7,我想保留这些值。由于某些原因,未删除数组中的最后一个值。为什么会这样

你试过调试它吗

当你有b=-110 它通过了这个条件:

if(b!= -15 && i + 2 < srec.length() && (Character.digit(srec.charAt(i + 2), 16) << 4) + Character.digit(srec.charAt(i + 3), 16) != -15 
                && (Character.digit(srec.charAt(i + 2), 16) << 4) + Character.digit(srec.charAt(i + 3), 16) != -11)

b != 15 -> true
i + 2 = 124 < srec.length() = 142 -> true

(Character.digit(srec.charAt(i + 2), 16) << 4)+ Character.digit(srec.charAt(i + 3), 16) = -7 and -7 != -15 and also -7 != -11

因此执行data.addb。

示例中缺少的代码太多,无法轻松解决问题。例如,变量数据来自哪里?也许这就是你问题的根源…?呜呜。。。那些是名单。。。我忘了加上那个。。谢谢你的提醒。我解决了问题,你肯定走对了方向。所以桑克斯: