Java decimal / ascii和base conversion

时间:2011-08-08 13:44:51

标签: java perl hex

我正在将代码从perl转换为java。我有点坚持在java中找到等价物。

这是我的Perl代码:

    for($i = 0; $i < strlen($hex_); $i = $i + 2)
    {
      $ascii = $ascii.chr(hexdec(substr($hex_, $i, 2))); 
    }

所以在java中我可以做hex.substring(i,2)。我得到那个部分。

我如何在Java中使用chr和hexdec部分?

这是我到目前为止所拥有的

2 个答案:

答案 0 :(得分:3)

您无需手动解析十六进制数字,只需使用Integer.parseInt(String s, int radix)即可。类似地,有一个Integer.toString(int i, int radix)会将你的整数转换为具有所需基数的String。

答案 1 :(得分:0)

我真的非常惊讶你没有使用pack作为你的Perl版本!

$ascii = pack 'H*', $hex_;

无论如何,Perl代码的Java端口,如果你想手动编码(而不是像Apache Commons Codec这样使用),那就是:

StringBuilder sb = new StringBuilder();
for (int i = 0; i + 1 < hex.length(); i += 2)
    sb.append((char) Integer.parseInt(hex.substring(i, i + 2)));
String ascii = sb.toString();