我有这样的字符串
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]));
}
这不能确定,但我怎么做比较
答案 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
评论的代码