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

问题描述 投票:0回答:1

我正在尝试将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"周围的部分,但没有任何帮助。

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

java string formatting hex
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.