比较byte [i]和字符串在java中

时间:2013-01-30 17:24:33

标签: java

我有这样的字符串

String text = "f001050000000000003d61c1c1df400200c0000009181600ef014000003f20"

我将它转换为字节以循环遍历字节

byte[] bytes = new BigInteger(text,16).toByteArray();        
    for (int i = 1; i < bytes.length; i++) 
    {            
        System.out.print(String.format("%02x ", bytes[i]));
    }

我想将i bytes[i]的字节值与等效字符串进行比较 类似的东西

for (int i = 1; i < bytes.length; i++) 
    {      
        if (bytes[i] == "f0")
        {
            break;
        }
        System.out.print(String.format("%02x ", bytes[i]));
    }

这不能确定,但​​我怎么做比较

2 个答案:

答案 0 :(得分:3)

byte是一种数字类型,因此您只需执行

即可
if(bytes[i] == (byte)0xf0) { ... }

答案 1 :(得分:3)

bytes[i] == "f0"始终为false,因为您将byte的值与String

的引用进行比较

将您的条件更改为

(bytes[i] & 0xFF) == 0xF0

&oxFF因为这样我们屏蔽了字节并进行int比较。 这样,bytes[i] == -16的条件将为0xF0

更改了引用 @isfforall

评论的代码