? //開(kāi)始 15位到18位的身份證號(hào)轉(zhuǎn)換
?? //身份證號(hào)碼由十七位數(shù)字本體碼和一位校驗(yàn)碼組成,排列順序從左至右依次為:
?? //六位數(shù)地址碼、八位數(shù)字的出生日期碼、三位數(shù)字的順序碼和一位數(shù)字的校驗(yàn)碼
??? 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();
????? }
?//結(jié)束 15位到18位的身份證號(hào)轉(zhuǎn)換
?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();
?}
?