I am having a hard time trying to convert a String containing the hexadecimal representation of some bytes to its corresponding byte array.
I am getting 32bytes using the following code:
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
return sb.toString();
Any idea how to get from the String to开发者_运维百科 the array? In other words, how to do the reverse of the code above.
Thanks.
I'd try commons-codec byte[] originalBytes = Hex.decodeHex(string.toCharArray())
. In fact I would use it also for the encoding part.
You can use the Integer.parseInt(String s, int radix) method to convert the hexadecimal representation back to an integer, which you can then cast into a byte. Use that to process the string two characters at a time.
Use the
String.getBytes();
method
精彩评论