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

标签 java

我正在用 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/

相关文章:

java - 在客户端代码中显示属性文件位置

java - 日期之间的Mysql不起作用

java - 在没有事件总线的情况下触发事件时自动从 observable 获取项目

java - 启动 Neo4j 时出现名称或服务未知异常

java - 如何将代理注入(inject)服务?

java - Kotlin 中的包等效可见性修饰符

java - JButton 设置 X 位置不起作用

java - Intellij IDEA 线程 View 中@后面的数字是什么意思?

java - 无法在 GAE 上部署没有 app.yml 文件的 Java WAR 应用程序

java - 如何检查子列表是否位于较大列表的某个 "window"中?