我正在尝试将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"