java数组如何16进制打印

java数组如何16进制打印

作者:William Gu发布时间:2026-02-08阅读时长:0 分钟阅读次数:26

用户关注问题

Q
如何将Java数组中的元素以十六进制格式输出?

我有一个Java数组,想让数组中的每个元素以十六进制的形式打印出来,应该用什么方法或函数?

A

使用Integer.toHexString方法打印十六进制数组元素

可以使用Java的Integer.toHexString(int)方法,将每个整数元素转换为十六进制字符串。通过遍历数组,依次调用该方法,即可实现十六进制打印。例如:

int[] arr = {10, 15, 255};
for(int num : arr) {
System.out.print(Integer.toHexString(num) + " ");
}

这段代码将输出:a f ff

Q
是否有方法格式化打印Java数组,使输出的十六进制数宽度统一?

我希望打印的十六进制数组元素宽度一致,比如不足两位时前面补‘0’,Java中如何实现这种格式化?

A

利用String.format函数实现十六进制宽度补零打印

可以使用String.format方法,通过格式控制实现固定宽度且左补零的十六进制输出。例如,若想打印两位十六进制,可以按如下方式操作:

int[] arr = {5, 16, 255};
for(int num : arr) {
System.out.print(String.format("%02x", num) + " ");
}

输出结果为:05 10 ff。这里%02x表示以两位十六进制形式输出,不足两位时补0。

Q
如何打印Java字节数组(byte[])为十六进制字符串?

如果数组是byte[]类型的,想要以十六进制显示内容,Java中有什么常见做法?

A

遍历byte数组并使用格式化字符串输出十六进制

针对byte数组,遍历每一个字节,使用格式化字符串将每个byte按十六进制打印是常见的方法。示例如下:

byte[] bytes = {0x1, 0xA, 0x10};
for(byte b : bytes) {
System.out.print(String.format("%02x", b) + " ");
}

执行后输出:01 0a 10,保证了每个字节占两位,且小写形式的十六进制数字。