如何在 Java 中将十六进制字符串转换为字节值

2022-09-01 23:56:56

我有一个字符串数组。我想将其转换为字节数组。我使用Java程序。例如:

String str[] = {"aa", "55"};

转换为:

byte new[] = {(byte)0xaa, (byte)0x55};

我该怎么办?


答案 1
String str = "Your string";

byte[] array = str.getBytes();

答案 2

看看这个示例,我猜你的意思是字符串数组实际上是一个十六进制表示字节的数组,不是吗?

如果是,那么对于每个字符串项,我将执行以下操作:

  1. 检查字符串是否仅包含 2 个字符
  2. 这些字符在'0'..”9'或'a'..'f' 间隔(也考虑它们的情况)
  3. 将每个字符转换为相应的数字,减去代码值“0”或“a”
  4. 构建一个字节值,其中第一个字符是较高的位,第二个字符是较低的位。例如:

    int byteVal = (firstCharNumber << 4) | secondCharNumber;