java - 如何在 Java 中将字符串转换为十六进制字节

标签 java android string hex

我想拆分字符串中的两个字符并将其转换为十六进制字节数组表示形式, 我只是不知道该怎么做。

在字符串中 a= 十六进制 a 十进制为 10 在字符串 b= hex b 中,十进制为 11

String toConvert = "abbbbbbbbbbbbbbbbbbbbbbc";
byte[] output = new byte[12];





                          Input
 ab    bb   bb    bb  bb   bb   bb   bb   bb   bb   bb   bc
                          output
[-85, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -68]

最佳答案

取两个一组中的第一个字符,将其十六进制值乘以 16 (它在 16<sup>1</sup> 位置)。该结果被添加到第二个字符的十六进制值。

String toConvert = "abbbbbbbbbbbbbbbbbbbbbbc";
byte[] output = new byte[toConvert.length() / 2];

for (int i = 0; i < output.length; i++) {
    output[i] |= Character.digit(toConvert.charAt(i * 2), 16) * 16;
    output[i] |= Character.digit(toConvert.charAt(i * 2 + 1), 16);
}

关于java - 如何在 Java 中将字符串转换为十六进制字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078825/

相关文章:

java - 无法使用 kafka 和 spring boot 反序列化数据

java - 为什么 Hibernate Envers 忽略我的自定义 RevisionEntity?

java - 如何通过自动滚动将 JTextPane 的 Caret 位置居中?

android - Android Studio 中的 FirstName 字段验证

android - 如何创建这样的按钮组?

c# - ASP.Net 的 String.Replace 在 Windows 7 工作站上运行时与在 Windows 2008 R2 服务器上运行时的行为不同

java - Spring MVC Restful应用程序和Rest Web服务的分离

string - 给定 a 和 b 以及 b 和 c 的成对编辑距离,我们能否找到 a 和 c 的成对编辑距离?

java - 编译时常量在 Switch Case Java 中的使用

java - 如何将 Android Studio 的 ide 模板与 Udacity 的进行匹配?