15位IMEI號校驗算法

15位IMEI號校驗算法:

package com.ghw.springboot;

import org.apache.commons.lang3.StringUtils;

public class GhwTest2 {
    public static void main(String[] args) {
        System.out.println("aaa" + judgeCorrectImei("864652030131422"));
    }

    /**
     * 判斷IMEI號是否合法,合法返回true,不合法返回false
     *
     * @param imei IMEI號
     * @return if 合法 true else false
     */
    private static Boolean judgeCorrectImei(String imei) {
        final int imeiLength = 15;
        if (imei.length() == imeiLength) {
            String check = StringUtils.substring(imei, 14);
            imei = StringUtils.substring(imei, 0, 14);
            char[] imeiChar = imei.toCharArray();
            int resultInt = 0;
            for (int i = 0; i < imeiChar.length; i++) {
                int a = Integer.parseInt(String.valueOf(imeiChar[i]));
                i++;
                final int temp = Integer.parseInt(String.valueOf(imeiChar[i])) * 2;
                final int b = temp < 10 ? temp : temp - 9;
                resultInt += a + b;
            }
            resultInt %= 10;
            resultInt = resultInt == 0 ? 0 : 10 - resultInt;
            if (StringUtils.equals(String.valueOf(resultInt), check)) {
                return true;
            }
        }
        return false;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 引言 在金融類軟件開發(fā)過程中,經(jīng)常會涉及到用戶銀行卡信息的校驗,包括銀行卡卡號、開戶人姓名、身份證號和手機號等。理...
    亦楓閱讀 16,875評論 5 36
  • 奇偶校驗、海明碼、CRC循環(huán)冗余校驗碼 三種校驗碼比較重要,需要牢記,在計算機網(wǎng)絡(luò)中用處較大 奇偶校驗 根據(jù)被傳輸...
    正經(jīng)龍閱讀 9,675評論 0 1
  • 筆者目前使用的jdk版本是1.6.0_29,Eclipse版本是Juno Release,Build id 201...
    godson_ds閱讀 12,174評論 1 14
  • 1、TCP為什么需要3次握手,4次斷開? “三次握手”的目的是“為了防止已失效的連接請求報文段突然又傳送到了服務(wù)端...
    杰倫哎呦哎呦閱讀 3,640評論 0 6
  • 重要的事情: 1.去原來公司處理客戶問題,并咨詢公司情況。完成 2.投簡歷選擇公司,工作已經(jīng)定下來,周一去上班 健...
    關(guān)童幻閱讀 322評論 0 0

友情鏈接更多精彩內(nèi)容