如何通过一个Java方法实现判断IMEI号的正确性,不用正则表达式。
根据接收到的IMEI号验证它是一个IMEI号而非随便写的一个号码。
网上有好多验证手机号码,身份证号码,邮箱号码等等等的验证,好像就没怎么搜索到验证IMEI号的。
网上有好多验证手机号码,身份证号码,邮箱号码等等等的验证
其实这些验证也只是格式上、形式上的验证,而不是实际的验证。实际要想知道IMEI号,包括电话、身份证、邮箱等等,都需要和对应的机构的数据库连接,查询才能知道,不可能靠“java方法”凭空算出来。
谢谢您的回复。IMEI正确性的验证就如同我们写一段Java代码(或一个Java方法)验证身份证是否正确类似,而我们在前段页面做身份证验证的时候并没有去公安的数据库查询呀。也不好像网上直接根据输入的IMEI号查询出来的信息那么详细,我这边仅要对页面输入的IMEI做一下判断,确定它返回IMEI的数据规格,而不是说用户输入15个1呀,15个2呀就让用户进行查询。
好有用,感谢分享有价值的东东
imei第15位为校验码,可以用前14位 通过代码来校验。
public static String createCode(String code){
int total=0,sum1=0,sum2 =0;
int temp=0;
char [] chs = code.toCharArray();
for (int i = 0; i < chs.length; i++) {
int num = chs[i] - '0'; // ascii to num
//System.out.println(num);
/*(1)将奇数位数字相加(从1开始计数)*/
if (i%2==0) {
sum1 = sum1 + num;
}else{
/*(2)将偶数位数字分别乘以2,分别计算个位数和十位数之和(从1开始计数)*/
temp=num * 2 ;
if (temp < 10) {
sum2=sum2+temp;
}else{
sum2 = sum2 + temp + 1 -10;
}
}
}
total = sum1+sum2;
/*如果得出的数个位是0则校验位为0,否则为10减去个位数 */
if (total % 10 ==0) {
return "0";
}else{
return (10 - (total %10))+"";
}
}