美文网首页
15位IMEI号校验算法

15位IMEI号校验算法

作者: 暖熊熊 | 来源:发表于2019-02-26 17:51 被阅读0次

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;
    }
}

相关文章

网友评论

      本文标题:15位IMEI号校验算法

      本文链接:https://www.haomeiwen.com/subject/qirmdqtx.html