在Java中将StringBuffer转换为字节数组

S.K*_*S.K 0 java bytearray stringbuffer

我有一个StringBuffer , strbuf=161656070200000000202020202001000000009E52;.

我想转换成一个如下所示的字节数组:

byte[] byte_array=new byte[]
 {(byte)0x16,(byte)0x16,(byte)0x56,(byte)0x07,
  (byte)0x02,(byte)0x00,(byte)0x00,(byte)0x00,
  (byte)0x00,(byte)0x20,(byte)0x20,(byte)0x20,
  (byte)0x20,(byte)0x20,(byte)0x01,(byte)0x00,
  (byte)0x00,(byte)0x00,(byte)0x00,(byte)0x9E,(byte)0x52};
Run Code Online (Sandbox Code Playgroud)

我需要转换strbufhex字符串然后吗 getBytes()?解决这个问题的正确方法是什么?

Pet*_*rey 8

您可以尝试以下方法.

final String longHex = "161656070200000000202020202001000000009E52";
byte[] bytes = new BigInteger(longHex, 16).toByteArray();
System.out.println(Arrays.toString(bytes));
Run Code Online (Sandbox Code Playgroud)

版画

[22, 22, 86, 7, 2, 0, 0, 0, 0, 32, 32, 32, 32, 32, 1, 0, 0, 0, 0, -98, 82]
Run Code Online (Sandbox Code Playgroud)


And*_*yle 5

让我们打破这个问题,然后在这里工作.

你知道吗:

  • 如何将inta 转换为a byte(假设前者在范围内)?
  • 如何将两个字符String转换为int
  • 如何将长字符串转换为每个两个字符的块?

我怀疑你能够单独完成这些任务.简单地按顺序完成所有这些操作(按相反的顺序)将产生您正在寻找的解决方案.

</teaching-to-fish>