/**
* 字符串转换成为16进制(无需Unicode编码)
*
* @param str
* @return
*/
private static final char[] HEX_CHAR_ARR = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F'};
public static String str2HexStr(String str) {
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit;
for (int i = 0; i < bs.length; i++) {
bit = (bs[i] & 0x0f0) >> 4;
sb.append(HEX_CHAR_ARR[bit]);
bit = bs[i] & 0x0f;
sb.append(HEX_CHAR_ARR[bit]);
sb.append(" ");
}
return sb.toString();
}
/**
* 16进制直接转换成为字符串(无需Unicode解码)
*
* @param hexStr
* @return
*/
public static String hexStr2Str(String hexStr) {
String str = "0123456789ABCDEF";
char[] hexs = hexStr.toCharArray();
byte[] bytes = new byte[hexStr.length() / 2];
int n;
for (int i = 0; i < bytes.length; i++) {
n = str.indexOf(hexs[2 * i]) * 16;
n += str.indexOf(hexs[2 * i + 1]);
bytes[i] = (byte) (n & 0xff);
}
return new String(bytes);
}
java 16进制与中文(字符串)互转工具类
最新推荐文章于 2024-08-01 03:50:58 发布
本文介绍了两个Java方法,分别实现将字符串转换为16进制字符串(无需Unicode编码)和从16进制字符串还原回原始字符串(无需Unicode解码)。通过示例展示了如何使用HEX_CHAR_ARR和字符数组操作实现高效的转换过程。
摘要由CSDN通过智能技术生成