2

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

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

2 回答 2

2

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

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

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

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

有关更多信息,请阅读 Javadocs 中的DatatypeConverter类参考

于 2012-04-18T06:46:04.773 回答
1
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);
于 2013-02-01T04:16:49.847 回答