Converting Strings to Hexadecimal in Java
Converting a string to hexadecimal in Java is a simple task that can be accomplished using the String.format() method. Here's how you can do it:
public String toHex(String arg) { return String.format("%040x", new BigInteger(1, arg.getBytes(/*YOUR_CHARSET?*/))); }
In this code, the BigInteger(1, arg.getBytes()) line converts the string to a BigInteger object, which represents an arbitrary-precision non-negative integer. The 1 argument specifies that the integer is represented in little-endian byte order.
The String.format("0x") line then formats the BigInteger object as a hexadecimal string. The 0x format specifier specifies that the string should be zero-padded to a total width of 40 characters.
Converting Hexadecimal Strings Back to Strings
Converting a hexadecimal string back to a string is similar to the conversion process described above, but in reverse. Here's how you can do it:
public String fromHex(String hex) { byte[] bytes = new BigInteger(hex, 16).toByteArray(); return new String(bytes, /*YOUR_CHARSET?*/); }
In this code, the new BigInteger(hex, 16) line converts the hexadecimal string to a BigInteger object. The 16 argument specifies that the string is represented in hexadecimal format.
The toByteArray() method converts the BigInteger object to an array of bytes.
Finally, the new String(bytes) line converts the array of bytes to a string using the specified charset.
The above is the detailed content of How to Convert Strings to and from Hexadecimal in Java?. For more information, please follow other related articles on the PHP Chinese website!