如何计算身份证号的最后一位


public class Shengfenzheng {

/**
* @param args
*/
public static void main(String[] args) {

String s=”441621*******421″;//前17位的
String[] ss=s.split(“”);
int sum =0;
int end =0;
System.out.println(“ss.length==”+ss.length);
for(int i=1;i<18;i++){
Integer num =0;
try{
num=Integer.parseInt(ss[i]);
System.out.println(“num===”+num);
}catch(NumberFormatException e){}
switch (i){
case 1:sum=sum+num*7;break;
case 2:sum=sum+num*9;break;
case 3:sum=sum+num*10;break;
case 4:sum=sum+num*5;break;
case 5:sum=sum+num*8;break;
case 6:sum=sum+num*4;break;
case 7:sum=sum+num*2;break;
case 8:sum=sum+num*1;break;
case 9:sum=sum+num*6;break;
case 10:sum=sum+num*3;break;
case 11:sum=sum+num*7;break;
case 12:sum=sum+num*9;break;
case 13:sum=sum+num*10;break;
case 14:sum=sum+num*5;break;
case 15:sum=sum+num*8;break;
case 16:sum=sum+num*4;break;
case 17:sum=sum+num*2;break;

}
System.out.println(sum);

}
end=sum%11;
String endstring=”";
switch (end){
case 0:endstring=”1″;break;
case 1:endstring=”0″;break;
case 2:endstring=”X”;break;
case 3:endstring=”9″;break;
case 4:endstring=”8″;break;
case 5:endstring=”7″;break;
case 6:endstring=”6″;break;
case 7:endstring=”5″;break;
case 8:endstring=”4″;break;
case 9:endstring=”3″;break;
case 10:endstring=”2″;break;
}
System.out.println(“您的身份证最后一位是:”+endstring);

}

}

Comments are closed.