[英]converting a hex string back to a string, in Java
我正在努力尝试将十六进制数字字符串转换回原始字符串。 我使用以下方法转换字符串:
private static String hex(String binStr) {
String newStr = new String();
try {
String hexStr = "0123456789ABCDEF";
byte [] p = binStr.getBytes();
for(int k=0; k < p.length; k++ ){
int j = ( p[k] >> 4 )&0xF;
newStr = newStr + hexStr.charAt( j );
j = p[k]&0xF;
newStr = newStr + hexStr.charAt( j ) + " ";
}
} catch (Exception e) {
System.out.println("Failed to convert into hex values: " + e);
}
return newStr;
}
我真的被困住了,任何建议将不胜感激。
先感谢您
考虑一下:
String hexStr = "0123456789ABCDEF";
long i = Long.valueOf(hexStr, 16);
System.out.println(Long.toHexString(i));
问题中的代码会破坏信息。 只有每个输入字节的最高有效两位和最低有效四位对结果有贡献。 这意味着它通常无法逆转。
如果右移是 4 位,而不是 6 位:
int j = ( p[k] >> 4 )&0xF;
所有输入都将被保留,原始字符串可以从十六进制字符串中恢复。 也许你真的指的是四位移位?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.