我是一名有帮助的助手,以下是您需要翻译的内容:
现在我希望这些被解释为每个字节1个十六进制字符,而不是作为一个字符串,其中每个条目都是2个字节。
尝试了类似的方法,但不可能,因为它一直抱怨“非法的unicode转义”。我尝试使用“\u00”(即在u前面有两个反斜杠,但stackoverflow只显示一个)来避免该错误,但是然后我看不到数组中的真正十六进制值,而是看到一堆字符串,如->“\ U008C”,“\ U00D9”等。
我希望转换后的值为0x8C、0xD9、0x26等。
谢谢。
编辑:我已经更新了问题,只是为了澄清数组本身没有逗号。最终我需要将所有这些值放在一起,将其用作HMAC密钥,它是一个十六进制字符串,而不是文本字符串。
我有一个字符串数组,实际上由十六进制字符组成。
假设其内容为 ->
String array[] = {8C,D9,26,1D,69,B7,96,DB};
现在我希望这些被解释为每个字节1个十六进制字符,而不是作为一个字符串,其中每个条目都是2个字节。
StringBuilder output = new StringBuilder();
for (int j = 0; j < array.length; j++) {
String temp = "\u00"+ array[j];
output.append(temp);
}
尝试了类似的方法,但不可能,因为它一直抱怨“非法的unicode转义”。我尝试使用“\u00”(即在u前面有两个反斜杠,但stackoverflow只显示一个)来避免该错误,但是然后我看不到数组中的真正十六进制值,而是看到一堆字符串,如->“\ U008C”,“\ U00D9”等。
我希望转换后的值为0x8C、0xD9、0x26等。
谢谢。
编辑:我已经更新了问题,只是为了澄清数组本身没有逗号。最终我需要将所有这些值放在一起,将其用作HMAC密钥,它是一个十六进制字符串,而不是文本字符串。
byte[]
作为输出?如果是这样的话,你上面的例子就有误导性了,因为你正在构建一个字符串。 - cklab"\u00" + array[j]
生成它们也没有任何好处。我认为Bohemian的回答的前半部分是你需要的。 - David Conrad