【发布时间】:2012-04-11 07:00:56
【问题描述】:
我有一些 Perl 代码需要在 Java 中转置。在这段代码中,我必须处理 Perl 的pack。 Java中是否有等效的功能? Perl 代码如下所示:
$somevar = pack "H*", $vartopack;
【问题讨论】:
-
看看这个问题的答案:stackoverflow.com/questions/923863/…
我有一些 Perl 代码需要在 Java 中转置。在这段代码中,我必须处理 Perl 的pack。 Java中是否有等效的功能? Perl 代码如下所示:
$somevar = pack "H*", $vartopack;
【问题讨论】:
Perl 的 pack / unpack 函数是一个高度通用的转换实用程序,具有自己的 format syntax(在此处用于 H*,这使得它可以将任意长度的十六进制字符串作为输入),其中没有直接的Java世界中的等价物。但是,要翻译...
$somevar = pack "H*", $vartoconvert;
...对于 Java,您可以使用:
byte[] somevar = javax.xml.bind.DatatypeConverter.parseHexBinary(vartoconvert);
有关更多信息,请阅读 Javadocs 中的DatatypeConverter class reference。
【讨论】:
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);
【讨论】: