java将hex字符串转成byte数组
时间: 2023-10-13 21:24:25 浏览: 48
可以使用以下代码将一个hex字符串转换成byte数组:
```
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;
}
```
使用方法如下:
```
String hexString = "48656c6c6f20576f726c64";
byte[] byteArray = hexStringToByteArray(hexString);
```
注意,上面的代码假设输入的hex字符串是合法的,即长度为偶数且只包含0-9、a-f和A-F的字符。如果输入的hex字符串不合法,代码可能会抛出异常。
相关问题
java16进制字符串转换成byte数组
可以使用Java内置的方法将16进制字符串转换成byte数组:
```
public static byte[] hexStringToByteArray(String hex) {
int len = hex.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4)
+ Character.digit(hex.charAt(i+1), 16));
}
return data;
}
```
使用示例:
```
String hexString = "48656c6c6f20576f726c64";
byte[] byteArray = hexStringToByteArray(hexString);
System.out.println(Arrays.toString(byteArray));
```
输出结果:
```
[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
```
java 16进制字符串转byte数组
可以使用以下代码将Java中的16进制字符串转换为byte数组:
```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;
}
```
调用示例:
```java
String hexString = "48656c6c6f20576f726c64";
byte[] byteArray = hexStringToByteArray(hexString);
```