Java 字符串转换16进制数

1. 引言

在编程过程中,经常会遇到将字符串转换为16进制数的需求。例如,在网络通信中,数据传输常以16进制的形式进行。本文将介绍如何使用Java将字符串转换为16进制数,并提供相应的代码示例。

2. 字符串和16进制数的相互转换

在进行字符串和16进制数的转换之前,我们需要了解字符串和16进制数的表示方式。在Java中,字符串是由字符组成的序列。而16进制数是一种数值表示方式,使用0-9和A-F来表示0到15的值。

3. 字符串转换为16进制数

在Java中,我们可以使用 String.getBytes() 方法将字符串转换为字节数组。然后,我们可以使用 Integer.toHexString() 方法将字节数组转换为16进制字符串。

下面是一个示例代码,将字符串转换为16进制数:

String str = "Hello World";
byte[] bytes = str.getBytes();
StringBuilder hexString = new StringBuilder();
for (byte b : bytes) {
    String hex = Integer.toHexString(0xFF & b);
    if (hex.length() == 1) {
        hexString.append('0');
    }
    hexString.append(hex);
}
String hexStringResult = hexString.toString();
System.out.println(hexStringResult);

上述代码中,我们首先将字符串转换为字节数组,然后遍历字节数组,将每个字节转换为16进制字符串,并拼接到 hexString 中。最后,我们将 hexString 转换为字符串并打印输出。

运行上述代码,将输出字符串 "Hello World" 的16进制表示:

48656c6c6f20576f726c64

4. 16进制数转换为字符串

与字符串转换为16进制数相反,我们可以使用 Integer.parseInt() 方法将16进制字符串转换为整数,并使用 Integer.toHexString() 方法将整数转换为16进制字符串。

下面是一个示例代码,将16进制数转换为字符串:

String hexString = "48656c6c6f20576f726c64";
byte[] bytes = new byte[hexString.length() / 2];
for (int i = 0; i < hexString.length(); i += 2) {
    String hex = hexString.substring(i, i + 2);
    int value = Integer.parseInt(hex, 16);
    bytes[i / 2] = (byte) value;
}
String strResult = new String(bytes);
System.out.println(strResult);

上述代码中,我们首先将16进制字符串的长度除以2,创建一个字节数组。然后,我们遍历16进制字符串,每次取两个字符,将其转换为整数,并将整数转换为字节,存入字节数组中。最后,我们将字节数组转换为字符串并打印输出。

运行上述代码,将输出16进制数 "48656c6c6f20576f726c64" 的字符串表示:

Hello World

5. 总结

本文介绍了如何使用Java将字符串转换为16进制数,并提供了相应的代码示例。通过了解字符串和16进制数的表示方式,我们可以灵活地在字符串和16进制数之间进行转换。希望本文对您有所帮助!

参考资料

  • Java String to Hex: [
  • Hex String to Byte Array and Java String to Hex: [