我用Java编程。该程序具有如下字符串。
String str = "byte."
上面的字符串可以转换为十六进制字节数组,如下所示吗?
byte[] data = {0x62, 0x79, 0x74, 0x65};
谢谢。
答案 0 :(得分:5)
没有“十六进制字节”这样的东西,而且还有“十进制整数”和“十六进制整数”。
您当然可以将字符串转换为字节数组。例如:
byte[] data = str.getBytes("UTF-8");
这里的UTF-8
部分是要使用的编码的名称 - 其中编码实际上是Unicode字符和字节之间的映射。 (这有点复杂,但这是一个很好的初步近似。)
是 String.getBytes()
的无参数重载但我强烈建议您不要使用它 - 它会选择平台默认编码,很少是一个好主意。
您还可以使用带有Charset
的重载,最终会与Guava等库结合使用,您可以在其中编写:
byte[] data = str.getBytes(Charsets.UTF_8);
...所以你不再依赖字符串表示。