我有一些需要在 Java 中转置的 Perl 代码。在这段代码中,我必须处理 Perl 的pack
. Java中是否有等效的功能?Perl 代码如下所示:
$somevar = pack "H*", $vartopack;
Perl 的pack
/unpack
函数是一个高度通用的转换实用程序,具有自己的格式语法(在H*
这里使用,这使得它可以将任意长度的十六进制字符串作为输入),在 Java 世界中没有直接的等价物。但是,要翻译...
$somevar = pack "H*", $vartoconvert;
...对于 Java,您可以例如使用:
byte[] somevar = javax.xml.bind.DatatypeConverter.parseHexBinary(vartoconvert);
有关更多信息,请阅读 Javadocs 中的DatatypeConverter
类参考。
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);