Java 十进制/ascii 和基数转换

发布于 2024-11-28 14:15:06 字数 323 浏览 0 评论 0原文

我正在将代码从 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部分?

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

I'm converting code from perl to java. I'm sort of stuck on finding the equivalents in java.

Here's my Perl code:

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

so in java i can do hex.substring(i,2). I got that part.

How would I do the chr and hexdec part in Java?

Here's what I have so far

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偏爱自由 2024-12-05 14:15:06

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

There is no need for you to go about parsing hexadecimal numbers manually, you can just use Integer.parseInt(String s, int radix). Similarily, there is an Integer.toString(int i, int radix) which will convert your integer to a String with the desired base.

淡墨 2024-12-05 14:15:06

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

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

无论如何,如果您想手动编码(而不是使用诸如 Apache Commons 之类的东西),则 Perl 代码的 Java 端口编解码器)是:

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

I'm actually extremely surprised you didn't use pack for your Perl version!

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

Anyway, the Java port of your Perl code, if you want to code it manually (as opposed to using something like Apache Commons Codec) is:

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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文