public class HexToASCII {
/**
* @param Hex字符串
* @return 将HEX字符串每两个一组截开,截成Hex数
*/
public static List strSplit(String str){
List<String> strList = new ArrayList<String>();
// String[] strArray = new String[50];
boolean Flag = false;
if((str.length())%2 == 0){
Flag = true;
}
if(Flag){
for(int i=0;i<((str.length())/2);i++){
String substring = str.substring(0+i*2, 2+i*2);
// strArray[i] = substring;
strList.add(substring);
}
}
return strList;
}
/**
* 16进制转化为字母
* @param hex 要转化的16进制数,用逗号隔开 如:53,68,61,64,6f,77
* @return
*/
public static String hexTolLetter(String hex) {
StringBuilder sb = new StringBuilder();
String[] split = hex.split(",");
for (String str : split) {
int i = Integer.parseInt(str, 16);
sb.append((char)i);
}
return sb.toString();
}
/**
* @param str Hex字符串
* @return Hex字符串转换成ASCII的结果
*/
public static String getASCII(String str) {
String returnStr = "";
List<String> strSplitList = strSplit(str);
for(int i=0;i<strSplitList.size();i++){
String hexTolLetter = hexTolLetter(strSplitList.get(i));
returnStr += hexTolLetter;
}
return returnStr;
}
public static void main(String[] args) {
// String str = "0d0a4f4b0d0a";
String ascii = getASCII(str);
System.out.println(ascii);
}
}