一、程序
import java.util.Scanner;
public class CheckId{
public static void main(String[] args) {
CheckId c = new CheckId();
}
public String intput() {
System.out.println("请输入一个身份证号码(尾号若为X请传入大写的X)");
Scanner cin = new Scanner(System.in);
return cin.next();
}
public int[] cut(String a) {
int[] b= new int[a.length()];
for(int i = 0;i<a.length();i++) {
b[i] = (int) a.charAt(i) - 48;
if(a.charAt(i)==88) b[i]=10;
}
return b;
}
public boolean cheak(int[] b) {
int s = 0;
for(int i = 0;i<b.length-1;i++){
switch(i){
case 0:
case 10:s = s + b[i]*7;break;
case 1:
case 11:s = s + b[i]*9; break;
case 2:
case 12:s = s + b[i]*10; break;
case 3:
case 13:s = s + b[i]*5; break;
case 4:
case 14:s = s + b[i]*8; break;
case 5:
case 15:s = s + b[i]*4; break;
case 6:
case 16:s = s + b[i]*2; break;
case 7:s = s + b[i]*1; break;
case 8:s = s + b[i]*6; break;
case 9:s = s + b[i]*3; break;
default:break;
}
}
switch (s%11){
case 0:if(b[b.length-1]==1)return true;break;
case 1 :if(b[b.length-1]==0)return true;break;
case 2 :if(b[b.length-1]==10)return true;break;
case 3:if(b[b.length-1]==9)return true;break;
case 4:if(b[b.length-1]==8)return true;break;
case 5:if(b[b.length-1]==7)return true;break;
case 6:if(b[b.length-1]==6)return true;break;
case 7:if(b[b.length-1]==5)return true;break;
case 8:if(b[b.length-1]==4)return true;break;
case 9:if(b[b.length-1]==3)return true;break;
case 10:if(b[b.length-1]==2)return true;break;
}
return false;
}
public CheckId(){
if(cheak(cut(intput())))System.out.println("合法尾号");
else System.out.println("非法尾号");
}
}
二、功能
身份证号码校验