HexCardTransform.java
1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.bsth.util;
import org.apache.commons.lang3.StringUtils;
import java.math.BigInteger;
/**
* Created by panzhao on 2017/9/27.
*/
public class HexCardTransform {
/**
* 16进制卡ID号转10进制
*
* @param hexCode
* @return
*/
public static String hexConvert(String hexCode) {
if(StringUtils.isBlank(hexCode))
return null;
//16进制补满8位
hexCode = padLeft(hexCode, 8, '0');
char[] cardIdArray = hexCode.toCharArray();
String cardId16Counter = "";
String cardId10 = "";
//倒序
for (int i = cardIdArray.length - 1; i >= 0; i -= 2) {
cardId16Counter += cardIdArray[i - 1] + "" + cardIdArray[i];
}
//转10进制
cardId10 = String.valueOf(new BigInteger(cardId16Counter, 16));
//10进制补满10位
cardId10 = padLeft(cardId10, 10, '0');
return cardId10;
}
public static String padLeft(String oriStr, int len, char alexin) {
String str = "";
int strlen = oriStr.length();
if (strlen < len) {
for (int i = 0; i < len - strlen; i++) {
str = str + alexin;
}
}
str = str + oriStr;
return str;
}
}