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: [