十六进制字符串转化成为十进制数字字符串

十六进制字符串转化成为十进制数字字符串

编码文章call10242025-07-11 21:49:003A+A-
/**
 * 十六进制字符串转化成为十进制数字字符串
 * @param hexgonSrcStr
 * @return
 */
public static String convertHexgon2IntDecimal(String hexgonSrcStr){
    if (hexgonSrcStr==null){
        return null;
    }
    if (hexgonSrcStr.isEmpty()){
        return null;
    }
    String trim = hexgonSrcStr.trim();
    if (trim==null){
        return null;
    }
    if (trim.isEmpty()){
        return null;
    }
    String substring = hexgonSrcStr.substring(2);
    if (!checkIsHexgonStr(substring)){
        return null;
    }
    int totalIntVal=0;
    for (int i = 0; i < substring.length(); i++) {
        char charAt = substring.charAt(i);
        String chartAtStr=charAt+"";
        int loopPathTimes=i;
        int intValFactor=1;
        switch (chartAtStr){
            case "A":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgonA=intValFactor*10;
                totalIntVal+=bitIntHexgonA;
                break;
            case "B":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgonB=intValFactor*11;
                totalIntVal+=bitIntHexgonB;
                break;
            case "C":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgonC=intValFactor*12;
                totalIntVal+=bitIntHexgonC;
                break;
            case "D":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgonD=intValFactor*13;
                totalIntVal+=bitIntHexgonD;
                break;
            case "E":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgonE=intValFactor*14;
                totalIntVal+=bitIntHexgonE;
                break;
            case "F":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgonF=intValFactor*15;
                totalIntVal+=bitIntHexgonF;
                break;
            case "0":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon0=intValFactor*0;
                totalIntVal+=bitIntHexgon0;
                break;
            case "1":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon1=intValFactor*1;
                totalIntVal+=bitIntHexgon1;
                break;
            case "2":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon2=intValFactor*2;
                totalIntVal+=bitIntHexgon2;
                break;
            case "3":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon3=intValFactor*3;
                totalIntVal+=bitIntHexgon3;
                break;
            case "4":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon4=intValFactor*4;
                totalIntVal+=bitIntHexgon4;
                break;
            case "5":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon5=intValFactor*5;
                totalIntVal+=bitIntHexgon5;
                break;
            case "6":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon6=intValFactor*6;
                totalIntVal+=bitIntHexgon6;
                break;
            case "7":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon7=intValFactor*7;
                totalIntVal+=bitIntHexgon7;
                break;
            case "8":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon8=intValFactor*8;
                totalIntVal+=bitIntHexgon8;
                break;
            case "9":
                intValFactor*=loopPathTimes;
                intValFactor*=16;
                int bitIntHexgon9=intValFactor*9;
                totalIntVal+=bitIntHexgon9;
                break;

        }
    }
    return String.valueOf(totalIntVal);
}

/**
 * 判断是否是十六进制字符串数字
 * @param hexgonStr
 * @return
 */
public static Boolean checkIsHexgonStr(String hexgonStr){
    if (hexgonStr==null){
        return null;
    }
    if (hexgonStr.isEmpty()){
        return null;
    }
    String trim = hexgonStr.trim();
    if (trim==null){
        return null;
    }
    if (trim.isEmpty()){
        return null;
    }
    String testRuleStr = new String("ABCDEF0123456789");
    for (int i = 0; i < hexgonStr.length(); i++) {
        Character charAt = hexgonStr.charAt(i);
        boolean contains = testRuleStr.contains(charAt + "");
        if (!contains){
            return false;
        }
    }
    return true;
}
点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4