我有一些Perl代碼需要在Java中轉置。在這段代碼中,我必須處理Perl的pack
。 Java中是否有等價的函數? Perl代碼看起來是這樣的:在Java中相當於Perl的包函數
$somevar = pack "H*", $vartopack;
我有一些Perl代碼需要在Java中轉置。在這段代碼中,我必須處理Perl的pack
。 Java中是否有等價的函數? Perl代碼看起來是這樣的:在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);
看看這個問題的答案:http://stackoverflow.com/questions/923863/converting-a-string-to-hexadecimal-in-java – 2012-04-11 07:29:23