/**
* 十六进制字符串转化成为十进制数字字符串
* @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
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
Character charAt = hexgonStr.charAt(i)
boolean contains = testRuleStr.contains(charAt + "")
if (!contains){
return false
}
}
return true
}
```
```