Java字符串转16进制和ASCII码互转方法
Java中字符串和16进制以及ASCII码的互转是常见的需求,可以通过以下方法实现。对于字符串转16进制,可以使用toHexString方法,对于16进制转字符串,则可以使用valueOf方法。同时,可以使用getBytes方法将字符串转化为字节数组,进一步实现ASCII码和16进制的互转。详细代码可以参考以下示例:
// 字符串转16进制
public static String stringToHex(String str) {
char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder builder = new StringBuilder("");
byte[] bytes = str.getBytes();
int bit;
for (byte b : bytes) {
bit = (b & 0x0f0) >> 4;
builder.append(chars[bit]);
bit = b & 0x0f;
builder.append(chars[bit]);
}
return builder.toString();
}
// 16进制转字符串
public static String hexToString(String hex) {
StringBuilder builder = new StringBuilder("");
for (int i = 0; i < hex.length(); i += 2) {
String str = hex.substring(i, i + 2);
builder.append((char) Integer.parseInt(str, 16));
}
return builder.toString();
}
// 字符串转ASCII码
public static String stringToASCII(String str) {
StringBuilder builder = new StringBuilder("");
char[] chars = str.toCharArray();
for (char ch : chars) {
builder.append((int) ch).append(" ");
}
return builder.toString();
}
// ASCII码转字符串
public static String ascciiToString(String ascii) {
StringBuilder builder = new StringBuilder("");
String[] split = ascii.split(" ");
for (String s : split) {
builder.append((char) Integer.parseInt(s));
}
return builder.toString();
}