Java字节数组转换成十六进制字符串
时间: 2023-07-08 13:56:17 浏览: 75
Java中可以使用以下代码将字节数组转换成十六进制字符串:
```
public static String bytesToHex(byte[] bytes) {
char[] hexArray = "0123456789ABCDEF".toCharArray();
char[] hexChars = new char[bytes.length * 2];
for (int i = 0; i < bytes.length; i++) {
int v = bytes[i] & 0xFF;
hexChars[i * 2] = hexArray[v >>> 4];
hexChars[i * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
```
使用方法如下:
```
byte[] bytes = {0x12, 0x34, (byte) 0xAB, (byte) 0xCD};
String hexString = bytesToHex(bytes);
System.out.println(hexString); // output: "1234ABCDEF"
```
相关问题
java 16进制_JAVA 十六进制与字符串的转换
在Java中,可以通过以下方式将十六进制字符串转换为字节数组:
```java
String hexString = "48656c6c6f20576f726c64"; // 十六进制字符串
byte[] bytes = DatatypeConverter.parseHexBinary(hexString);
```
同样地,可以将字节数组转换为十六进制字符串:
```java
byte[] bytes = { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 }; // 字节数组
String hexString = DatatypeConverter.printHexBinary(bytes); // 将字节数组转换为十六进制字符串
```
需要注意的是,上述代码中使用了`javax.xml.bind.DatatypeConverter`类,需要在代码中引入该类所在的包。另外,Java 9及以上版本中已经将该类标记为废弃,推荐使用其他替代方案。
将字符串转换胃十六进制字节数组
可以使用Java中的`hexStringToByteArray`方法将字符串转换为十六进制字节数组:
```java
public static byte[] hexStringToByteArray(String hexString) {
int len = hexString.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
+ Character.digit(hexString.charAt(i+1), 16));
}
return data;
}
```
例如,将字符串"48656c6c6f20576f726c64"转换为字节数组,可以调用该方法:
```java
String hexString = "48656c6c6f20576f726c64";
byte[] byteArray = hexStringToByteArray(hexString);
System.out.println(Arrays.toString(byteArray));
```
输出结果为:
```
[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
```