我有一个由十六进制字母表组成的文字字符串,例如 00bff040dadd1fde55
,我希望将该字符串转换为以字节为单位的十六进制“等效”,即转换为字节数组,例如 {0x00 0xBF 0xF0 0x40 0xDA 0xDD 0x1F 0xDE 0x55}
是否有可以进行这种转换的 Java 类?如果没有,有没有人有我可以实现的算法来进行上述转换?
最佳答案
Is there a Java class that can do this conversion?
标准库中没有类可以将包含十六进制字符的字符串转换为字节数组......就像那样1。
If not, does anyone have an algorithm I can implement to do the above conversion?
- 将字符串的长度除以 2,并分配该大小的字节数组。
重复直到字符串为空:
- 删除包含前两个字符的子字符串。
- 使用
Integer.parseInt(twoChars, 16)
转换为整数。 - 将整数转换为字节并添加到字节数组。
该算法可以轻松转换为 Java 代码。
1 - 如果您确实想要将字节“文字”序列表示为字符串,请查看@aetheria 的回答...
关于java - 将 Ascii 值直接转换为 Hex 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30237819/