Java 字符串与十六进制互转指南

在计算机编程中,数据的表示方式多种多样,其中十六进制是一种常见的数据表示形式。Java语言提供了丰富的API来处理字符串和十六进制之间的转换。本文将介绍如何在Java中实现字符串和十六进制的互转,并通过代码示例和类图、序列图来加深理解。

字符串转十六进制

在Java中,可以使用Integer.toHexString(int i)方法将整数转换为十六进制字符串。此外,对于更复杂的数据类型,如byte[],可以使用DatatypeConverter类中的printHexBinary(byte[] data)方法。

代码示例
public class HexConversion {
    public static void main(String[] args) {
        int number = 255;
        String hexString = Integer.toHexString(number);
        System.out.println("十进制 " + number + " 转换为十六进制是: " + hexString);

        byte[] bytes = {1, 2, 3};
        String hexBytes = java.util.HexFormat.of().formatHex(bytes);
        System.out.println("字节数组转换为十六进制字符串: " + hexBytes);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

十六进制转字符串

将十六进制字符串转换回原始的字符串形式,可以使用Integer.parseInt(String s, int radix)方法,其中radix参数为16表示十六进制。

代码示例
public class HexConversion {
    public static void main(String[] args) {
        String hexString = "FF";
        int number = Integer.parseInt(hexString, 16);
        System.out.println("十六进制 " + hexString + " 转换为十进制是: " + number);

        String hexBytes = "010203";
        byte[] bytes = java.util.HexFormat.of().parseHex(hexBytes);
        String originalString = new String(bytes);
        System.out.println("十六进制字符串转换为原始字符串: " + originalString);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

类图

以下是一个简单的类图,展示了HexConversion类的结构:

HexConversion +main(args : String[]) : void

序列图

序列图展示了main方法中各个步骤的调用顺序:

HexFormat Integer main HexFormat Integer main toHexString(number) hexString of().formatHex(bytes) hexBytes parseInt(hexString, 16) number of().parseHex(hexBytes) bytes new String(bytes)

结语

通过本文的介绍和示例代码,你应该对Java中字符串和十六进制的互转有了更深入的理解。掌握这些转换技巧对于处理网络通信、文件编码等场景非常有用。希望本文能够帮助你在实际开发中更加得心应手。