调试的时候发现日志记录的是16进制信息,想转换成普通字符看下具体是什么内容,结果网上找了一圈,各种转换方法五花八门,
感觉大部分都设计的太复杂了,这里记录我自己实现的简易版本。
1.16进制转普通字符
/**
* 16进制转普通字符
* @param noSpaceHex 16进制字符串,格式:6D6C2076657273696F6E3D
* @return
*/
public static String hexToString(String noSpaceHex){
StringBuilder builder = new StringBuilder(noSpaceHex.length()/2);
for(int i = 0; i < noSpaceHex.length()-1; i+=2){
builder.append((char)Integer.valueOf(noSpaceHex.substring(i,i+2), 16).byteValue());
}
return builder.toString();
}
2.带空格的16进制转普通字符
/**
* 带空格的16进制转普通字符
* @param hex 带空格的16进制字符串,格式:6D 6C 20 76 65 72 73 69 6F 6E 3D
* @return
*/
public static String spaceHexToString(String hex){
String[] temp = hex.split(" ");
StringBuilder builder = new StringBuilder(temp.length);
for(String s : temp){
builder.append((char)Integer.valueOf(s, 16).byteValue());
}
return builder.toString();
}