我正在用 Java 编程。该程序有一个字符串,如下所示。
String str = "byte."
上面的字符串可以转换为如下所示的十六进制字节数组吗?
byte[] data = {0x62, 0x79, 0x74, 0x65};
谢谢。
最佳答案
不存在“十六进制字节”这样的东西,也不存在“十进制整数”与“十六进制整数”之类的东西。
不过,您当然可以将字符串转换为字节数组。例如:
byte[] data = str.getBytes("UTF-8");
这里的 UTF-8
部分是要使用的编码的名称 - 其中编码实际上是 Unicode 字符和字节之间的映射。 (它比这更复杂,但这是一个很好的初步近似。)
有 String.getBytes()
的无参数重载,但我强烈建议您不要使用它 - 它会选择平台默认编码,这很少是一个好主意。
您还可以使用采用 Charset
的重载,最终与 Guava 等库结合使用会更好。 ,您可以在其中写入:
byte[] data = str.getBytes(Charsets.UTF_8);
...因此您不再依赖字符串表示形式。
关于java - 需要帮助将字符串转换为十六进制字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10595818/