如何将String / char格式化为十六进制值正确

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将String / char格式化为十六进制值正确相关的知识,希望对你有一定的参考价值。

我正在尝试将String转换为它的十六进制表示。我有以下(测试)输入�¾��Hello World!

正确的十六进制表示应该是:00 BE 00 00 48 65 6C 6C 6F 20 57 6F 72 6C 64 21

我试图用String.format("%x", new BigInteger(toConvert.getBytes("ISO-8859-1"))).split("(?<=\G.{2})");格式化字符串

但是这种格式化操作会忽略第一个字符(如果它是一个十六进制空值)并导致BE 00 00 48 65 6C 6C 6F 20 57 6F 72 6C 64 21

我已经玩过"%x"周围的部分,但没有任何帮助。

但我相信,你可以帮助我:)

答案

要使用前导零进行格式化,请指定格式化十六进制值的宽度,并请求前导零。

例如。如果结果是6个字节,而不是格式"%x",请使用格式"%012x"

对于您的代码,请执行以下操作:"%0" + toConvert.length() * 2 + "x"

以上是关于如何将String / char格式化为十六进制值正确的主要内容,如果未能解决你的问题,请参考以下文章

当 String 是有效的 char 时将 String 转换为 char

使用String.format的Java十进制格式?

将十进制值格式化为具有 2 个小数位的货币 [重复]

如何将 unsigned char 值表示为十六进制字符串?

如何通过 JOptionPane 格式化十进制数的输出

将数字值从 XX.X 格式化为 .XXX java