首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将字节转换为十六进制的Java代码

将字节转换为十六进制的Java代码
EN

Stack Overflow用户
提问于 2010-05-12 18:08:35
回答 15查看 345.8K关注 0票数 200

我有一个字节数组。我希望该数组中的每个字节字符串都转换为相应的十六进制值。

Java中是否有将字节数组转换为十六进制的函数?

EN

回答 15

Stack Overflow用户

发布于 2010-05-12 18:12:43

尝试这样做:

byte bv = 10;
String hexString = Integer.toHexString(bv);

处理数组(如果我没理解错的话):

byte[] bytes = {9, 10, 11, 15, 16};
StringBuffer result = new StringBuffer();
for (byte b : bytes) {
    result.append(String.format("%02X ", b));
    result.append(" "); // delimiter
}
return result.toString();

正如前面提到的多基因修饰符,与Integer.toHexString()相比,String.format()是正确的答案(因为它以正确的方式处理负数)。

票数 16
EN

Stack Overflow用户

发布于 2016-12-14 01:33:24

最好的解决方案是这个坏家伙的一行代码:

String hex=DatatypeConverter.printHexBinary(byte[] b);

如前所述,here

票数 12
EN

Stack Overflow用户

发布于 2010-05-12 18:16:09

如果您想要一个恒定宽度的十六进制表示,即0A而不是A,这样您就可以明确地恢复字节,可以尝试format()

StringBuilder result = new StringBuilder();
for (byte bb : byteArray) {
    result.append(String.format("%02X", bb));
}
return result.toString();
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2817752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档