如何在 java 中的字节数组的十六进制字符串前面 prepend/add 一个“03”?

How to prepend/add a "03" infront of hexString of a byte array in java?

假设我有一个字节数组

byte [] initial = ......;

对应的十六进制字符串为0x6b6164756d,即;

System.out.println(Numeric.toHexString(initial)); //--> 0x6b6164756d

如何在“initial”前面加上“03”,这样当我

System.out.println(Numeric.toHexString(initial)); //--> 0x036b6164756d

它给了我 0x036b6164756d

我看到两个选项:

  1. 在前面插入一个值为3的byte

    byte[] copy = new byte[initial.length + 1];
    copy[0] = 0x03;
    System.arraycopy(initial, 0, copy, 1, initial.length);
    System.out.println(Numeric.toHexString(copy));
    
  2. 修改字符串。

    System.out.println(Numeric.toHexString(initial).replace("x", "x03"));