Java十进制/ascii和基数转换



我正在将代码从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)。我得到了那个角色。

我怎么做chr和十六进制部分在Java中?

这是我目前看到的

您不需要手动解析十六进制数,您可以使用Integer。parseInt(字符串s, int基数)。类似地,这里有一个Integer。toString(int i, int radix),它将把你的整数转换成一个具有所需基数的String。

实际上我非常惊讶您在Perl版本中没有使用pack !

$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();

最新更新