如何将字符串转换为16进制的字节数组
时间: 2024-05-01 10:17:32 浏览: 137
您可以使用以下代码将字符串转换为16进制字节数组:
```java
String inputString = "Hello world!";
byte[] hexBytes = inputString.getBytes(StandardCharsets.UTF_8);
StringBuilder result = new StringBuilder();
for (byte b : hexBytes) {
result.append(String.format("%02X", b));
}
System.out.println(result.toString());
```
这段代码将以UTF-8编码获取输入字符串的字节数组。然后,对于数组中的每个字节,使用`String.format()`方法将其转换为16进制字符串,并使用`StringBuilder`将所有转换后的字符串连接起来,以生成输出结果。
相关问题
将字符串转换胃十六进制字节数组
可以使用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]
```
Java将 "@001CXDATA<cr><lf>" 字符串转换成16进制字节数组并在末尾追加换行
你可以使用Java中的getBytes()方法将字符串转换为字节数组,然后使用DatatypeConverter类将字节数组转换为16进制字符串。最后将16进制字符串转换为字节数组,并在末尾追加换行符即可。下面是一个示例代码:
```java
String str = "@001CXDATA\r\n";
byte[] bytes = str.getBytes();
String hex = DatatypeConverter.printHexBinary(bytes);
byte[] hexBytes = DatatypeConverter.parseHexBinary(hex);
byte[] resultBytes = Arrays.copyOf(hexBytes, hexBytes.length + 1);
resultBytes[resultBytes.length - 1] = 0x0A; // 追加换行符
```
这个例子中,首先将字符串"@001CXDATA\r\n"转换为字节数组,然后使用DatatypeConverter类将字节数组转换为16进制字符串。接着将16进制字符串转换为字节数组,使用Arrays.copyOf方法将数组长度扩展1,最后在新数组的末尾追加换行符。
阅读全文