如何将字节数组中的数据打印为字符?

新手上路,请多包涵

在我的字节数组中,我有一条消息的 哈希 值,它由一些负值和正值组成。使用 (char)byte[i] 语句可以轻松打印正值。

现在我怎样才能得到负值呢?

原文由 user631785 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 605
2 个回答

好吧,如果你很高兴以十进制打印它,你可以通过屏蔽使其成为正数:

 int positive = bytes[i] & 0xff;

但是,如果您要打印散列,则使用十六进制会更传统。在 Stack Overflow 上还有很多其他问题解决了将二进制数据转换为 Java 中的十六进制字符串的问题。

原文由 Jon Skeet 发布,翻译遵循 CC BY-SA 3.0 许可协议

Arrays.toString(byteArray) 怎么样?

这是一些可编译的代码:

 byte[] byteArray = new byte[] { -1, -128, 1, 127 };
System.out.println(Arrays.toString(byteArray));

输出:

 [-1, -128, 1, 127]

为什么要重新发明轮子…

原文由 Bohemian 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题