我想拆分字符串中的两个字符并将其转换为十六进制字节数组表示形式, 我只是不知道该怎么做。
在字符串中 a= 十六进制 a 十进制为 10 在字符串 b= hex b 中,十进制为 11
String toConvert = "abbbbbbbbbbbbbbbbbbbbbbc";
byte[] output = new byte[12];
Input
ab bb bb bb bb bb bb bb bb bb bb bc
output
[-85, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -68]
最佳答案
取两个一组中的第一个字符,将其十六进制值乘以 16
(它在 16<sup>1</sup>
位置)。该结果被添加到第二个字符的十六进制值。
String toConvert = "abbbbbbbbbbbbbbbbbbbbbbc";
byte[] output = new byte[toConvert.length() / 2];
for (int i = 0; i < output.length; i++) {
output[i] |= Character.digit(toConvert.charAt(i * 2), 16) * 16;
output[i] |= Character.digit(toConvert.charAt(i * 2 + 1), 16);
}
关于java - 如何在 Java 中将字符串转换为十六进制字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078825/