在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ 統(tǒng)一社會(huì)信用代碼的校驗(yàn)問(wèn)題

統(tǒng)一社會(huì)信用代碼的校驗(yàn)問(wèn)題

統(tǒng)一社會(huì)代碼的生成規(guī)則是根據(jù)國(guó)家標(biāo)準(zhǔn)GB32100—2015《法人和其他組織統(tǒng)一社會(huì)信用代碼編碼規(guī)則》標(biāo)準(zhǔn)制定的。

先來(lái)一段代碼:

    public static boolean validate18(String bizNo) {

        String regex = "^([0-9ABCDEFGHJKLMNPQRTUWXY]{2})([0-9]{6})([0-9ABCDEFGHJKLMNPQRTUWXY]{10})$";
        if (!bizNo.matches(regex)) {
            return false;
        }

        String baseCode = "0123456789ABCDEFGHJKLMNPQRTUWXY";
        char[] baseCodeArray = baseCode.toCharArray();
        Map<Character, Integer> codes = new HashMap<Character, Integer>();
        for (int i = 0; i < baseCode.length(); i++) {
            codes.put(baseCodeArray[i], i);
        }

        char[] businessCodeArray = bizNo.toCharArray();
        Character check = businessCodeArray[17];
        if (baseCode.indexOf(check) == -1) {
            return false;
        }

        int[] ws = { 1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28 };
        int sum = 0;
        for (int i = 0; i < 17; i++) {
            Character key = businessCodeArray[i];
            if (baseCode.indexOf(key) == -1) {
                return false;
            }
            sum += (codes.get(key) * ws[i]);
        }

        int c18 = 31 - sum % 31;
        if (c18 == 31) {
            c18 = 0;
        }
        return c18 == codes.get(check);

從代碼上看應(yīng)該滿足國(guó)家標(biāo)準(zhǔn),實(shí)際應(yīng)用過(guò)程中發(fā)現(xiàn)存在很多不滿足的情況,目前主要發(fā)現(xiàn)福建很多不滿足,比如:91350211M0000XUF46,9131000063159284XQ等

請(qǐng)問(wèn)各位有沒(méi)有這類校驗(yàn)?

回答
編輯回答
懶洋洋

91350100M0001TGQXM 也校驗(yàn)不通過(guò)

2017年8月29日 12:59