需要帮助将字符串转换为十六进制字节

时间:2012-05-15 07:11:20

标签: java

我用Java编程。该程序具有如下字符串。

String str = "byte."

上面的字符串可以转换为十六进制字节数组,如下所示吗?

byte[] data = {0x62, 0x79, 0x74, 0x65};

谢谢。

1 个答案:

答案 0 :(得分:5)

没有“十六进制字节”这样的东西,而且还有“十进制整数”和“十六进制整数”。

您当然可以将字符串转换为字节数组。例如:

byte[] data = str.getBytes("UTF-8");

这里的UTF-8部分是要使用的编码的名称 - 其中编码实际上是Unicode字符和字节之间的映射。 (这有点复杂,但这是一个很好的初步近似。)

String.getBytes()的无参数重载但我强烈建议您不要使用它 - 它会选择平台默认编码,很少是一个好主意。

您还可以使用带有Charset的重载,最终会与Guava等库结合使用,您可以在其中编写:

byte[] data = str.getBytes(Charsets.UTF_8);

...所以你不再依赖字符串表示。