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

Nik*_*kil 0 java

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

String str = "byte."
Run Code Online (Sandbox Code Playgroud)

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

byte[] data = {0x62, 0x79, 0x74, 0x65};
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jon*_*eet 5

没有"十六进制字节"这样的东西,而且还有"十进制整数"和"十六进制整数"之类的东西.

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

byte[] data = str.getBytes("UTF-8");
Run Code Online (Sandbox Code Playgroud)

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

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

你也可以使用一个带有a的重载Charset,它最终可以和像Guava这样的库一起使用,你可以在其中编写:

byte[] data = str.getBytes(Charsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)

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