在 Android 中,将字符串转换为16进制可以使用以下代码:
public static String stringToHex(String str) {
char[] chars = str.toCharArray();
StringBuilder hex = new StringBuilder();
for (char ch : chars) {
hex.append(Integer.toHexString((int) ch));
return hex.toString();
这个方法会将输入字符串中每个字符的ASCII码值转换为相应的16进制值,并将它们连接在一起形成一个字符串。
例如,如果您调用 stringToHex("Hello World!")
,它将返回字符串 "48656c6c6f20576f726c6421"
,这就是 "Hello World!" 的16进制表示形式。
需要注意的是,这个方法返回的是字符串,而不是字节数组。如果您需要将16进制字符串转换回字节数组,请参考以下代码:
public static byte[] hexToByteArray(String hex) {
int len = hex.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4)
+ Character.digit(hex.charAt(i+1), 16));
return data;
这个方法将输入的16进制字符串分割成每两个字符一组,并将它们转换为对应的字节值。例如,如果您调用 hexToByteArray("48656c6c6f20576f726c6421")
,它将返回字节数组 {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33}
,这就是 "Hello World!" 的字节数组形式。
希望这些代码对您有帮助。如果您还有其他问题,请随时问我。