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;
}
}
网友评论