/**
 * 把十六进制数字转换为十进制数字
 * @param hexSrcStr
 * @return
 * 170
 */
public static String convertHex2Decimal(String hexSrcStr){
    if (hexSrcStr==null || hexSrcStr.trim().length()==0){
        return null;
    }
    if (!hexSrcStr.startsWith("0x")){
        System.out.println("十六进制数字输入非法!");
        return null;
    }
    String substring1 = hexSrcStr.substring(2);
    for (int i = 0; i < substring1.length(); i++) {
        char charAt = substring1.charAt(i);
        if (!(Character.isDigit(charAt) || (Character.isUpperCase(charAt) && charAt >= 'A' && charAt <= 'F'))){
            return null;
        }
    }
    HashMap<Character, Integer> characterIntegerHashMap = new HashMap<>();
    characterIntegerHashMap.put('A',10);
    characterIntegerHashMap.put('B',11);
    characterIntegerHashMap.put('C',12);
    characterIntegerHashMap.put('D',13);
    characterIntegerHashMap.put('E',14);
    characterIntegerHashMap.put('F',15);
    // 0xAA
    String substring = hexSrcStr.substring(2);
    int length = substring.length();
    int sum=0;
    int ret=1;
    for (int i = length-1; i >=0 ; i--) {
        if (i==0){
            ret=1;
        }else {
            for (int j =0;j<i;j++) {
                ret*=16;
            }
        }
        char charAt = substring.charAt((length-1)-i);
        Integer integer=0;
        Integer integer1=0;
        if (Character.isDigit(charAt)){
            String charStr = String.valueOf(charAt);
            integer = Integer.valueOf(charStr);
            integer*=ret;
        }else if (Character.isUpperCase(charAt)){
            integer1 = characterIntegerHashMap.get(charAt);
            integer1*=ret;
        }
        if (Character.isDigit(charAt)){
            sum+=integer;
            ret=1;
        }else if (Character.isUpperCase(charAt)){
            sum+=integer1;
            ret=1;
        }
    }
    return String.valueOf(sum);
}