Java字符串转16进制和ASCII码互转方法

马叉虫49400 2 0 java 2023-06-19 20:06:31

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();

}

用户评论
请输入评论内容
评分:
暂无评论