Java将字节数组打印为字符串,整数转16进制字符串

在进行私有协议开发时,有时候需要将一个整数转换为16进制的字符串打印出来,方便观察调试。

这里有几种方案,

1. 使用java原生

java中,可以使用biginteger来进行转换, 代码如下



  public static void main(String[] args) {

        BigInteger bigInteger = new BigInteger("231231");  // output: 3873f

        System.out.println(bigInteger.toString(16));

    }


这种方案输出就可以输出16进制字符串了 ,唯一不足的是,输出的字节不能填充补零,不能按照字节进行隔开;比如输出: 03,87,3f。 这样是不是更爽

但是java原生的是有符号数处理机制,如果遇到输出字节数组时,记得最高位是符号位喔。

2. 使用第三方工具包

使用magic-byte,里面提供了打印的功能,方便调试。另外magic-byte也支持直接序列化java对象到字节数组。 免去了手动解析的繁琐。

引入:



<dependency>

  <groupId>io.github.misterchangray</groupId>

  <artifactId>magic-byte</artifactId>

  <version>2.2.0</version>

</dependency>

  public static void main(String[] args) {

          // 将 123123 按照 16进制输出, 每个字节间使用 逗号隔开

        System.out.println( ConverterUtil.prettyPrintByteArray(123123, 16, ","));

    }

```


另外附上框架github地址

[magic-byte框架地址](https://github.com/MisterChangRay/magic-byte)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容