58 lines
1.8 KiB
Java
58 lines
1.8 KiB
Java
package com.example.demo.Service;
|
|
|
|
import java.nio.ByteBuffer;
|
|
|
|
public class HexToCharArray {
|
|
public static void main(String[] args) {
|
|
// // 示例16进制字符串的ByteBuffer
|
|
// ByteBuffer buffer = ByteBuffer.wrap(new byte[]{0x4A, 0x6B, 0x4C, 0x6D});
|
|
//
|
|
// // 将 ByteBuffer 转换为字符数组
|
|
// char[] charArray = byteBufferToCharArray(buffer);
|
|
//
|
|
// // 打印字符数组
|
|
// System.out.println(charArray);
|
|
|
|
String hexString = "4A6B4C6D";
|
|
|
|
// 将16进制字符串转换为字符数组
|
|
char[] charArray = hexStringToCharArray(hexString);
|
|
|
|
// 打印字符数组
|
|
System.out.println(charArray);
|
|
}
|
|
|
|
public static char[] byteBufferToCharArray(ByteBuffer buffer) {
|
|
// 确保读取时从开头开始
|
|
buffer.rewind();
|
|
|
|
// 创建字符数组,每个字节转换为一个字符
|
|
char[] charArray = new char[buffer.remaining()];
|
|
|
|
for (int i = 0; i < charArray.length; i++) {
|
|
// 逐字节读取并转换为字符
|
|
charArray[i] = (char) buffer.get();
|
|
}
|
|
|
|
return charArray;
|
|
}
|
|
public static char[] hexStringToCharArray(String hexString) {
|
|
// 每两个十六进制字符表示一个字节,所以字符数组的长度为十六进制字符串长度的一半
|
|
int length = hexString.length() / 2;
|
|
char[] charArray = new char[length];
|
|
|
|
for (int i = 0; i < length; i++) {
|
|
// 取出两个十六进制字符并解析为一个字节
|
|
String hexPair = hexString.substring(2 * i, 2 * i + 2);
|
|
int byteValue = Integer.parseInt(hexPair, 16);
|
|
|
|
// 转换为字符并存入数组
|
|
charArray[i] = (char) byteValue;
|
|
}
|
|
|
|
return charArray;
|
|
}
|
|
|
|
|
|
}
|