//开始 15位到18位的身份证号转换
//身份证号码由十七位数字本体码和一位校验码组成,排列顺序从左至右依次为:
//六位数地址码、八位数字的出生日期码、三位数字的顺序码和一位数字的校验码
public String change18ID(String ID15){
String ID18="";
if(ID15.length()==18){
ID18=ID15.toUpperCase();
}
if(ID15.length()==15){
int[] w={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
char[] A={'1','0','X','9','8','7','6','5','4','3','2'};
String ID17=ID15.substring(0,6)+"19"+ID15.substring(6,15);
int[] ID17Array;
ID17Array=new int[17];
for(int i=0;i<17;i++){
ID17Array[i]=Integer.parseInt(ID17.substring(i,i+1));
}
int s=0;
for(int i=0;i<17;i++){
s=s+ID17Array[i]*w[i];
}
s=s%11;
ID18=ID17+A[s];
}
return ID18.trim();
}
//结束 15位到18位的身份证号转换
public String change15ID(String ID18){
String ID15="";
if(ID18.length()==15) ID15=ID18;
if(ID18.length()==18){
ID15=ID18.substring(0,6)+ID18.substring(8,17);
}
return ID15.trim();
}
posted on 2006-12-13 16:03
Stellar.He 阅读(2185)
评论(2) 编辑 收藏