【问题标题】:Perl's pack function equivalent in JavaPerl 在 Java 中的 pack 函数等价物
【发布时间】:2012-04-11 07:00:56
【问题描述】:

我有一些 Perl 代码需要在 Java 中转置。在这段代码中,我必须处理 Perl 的pack。 Java中是否有等效的功能? Perl 代码如下所示:

$somevar = pack "H*", $vartopack;

【问题讨论】:

标签: java perl hex pack


【解决方案1】:

Perl 的 pack / unpack 函数是一个高度通用的转换实用程序,具有自己的 format syntax(在此处用于 H*,这使得它可以将任意长度的十六进制字符串作为输入),其中没有直接的Java世界中的等价物。但是,要翻译...

$somevar = pack "H*", $vartoconvert;

...对于 Java,您可以使用:

byte[] somevar = javax.xml.bind.DatatypeConverter.parseHexBinary(vartoconvert);

有关更多信息,请阅读 Javadocs 中的DatatypeConverter class reference。

【讨论】:

    【解决方案2】:
    String hex = "4a616d6573";
    StringBuilder output = new StringBuilder();
    for (int i = 0; i < hex.length(); i+=2) {
        String str = hex.substring(i, i+2);
        output.append((char)Integer.parseInt(str, 16));
    }
    System.out.println(output);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      相关资源
      最近更新 更多