HexCardTransform.java 1.14 KB
package com.bsth.util;

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) {
        //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;
    }
}