0

我正在用 Java 编程。该程序有一个字符串,如下所示。

String str = "byte."

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

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

谢谢你。

4

1 回答 1

5

没有“十六进制字节”之类的东西,而不仅仅是“十进制整数”与“十六进制整数”。

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

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

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

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

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

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

...因此您不再依赖字符串表示。

于 2012-05-15T07:13:01.117 回答