15位身份证号码升位18位
package test;
public class RegNoUtil {
public static void main(String [] args){
String regNo = "422822900816142";
System.out.println("15位身份证号:" + regNo);
regNo = fifteen2Eighteen(regNo);
System.out.println("15位身份证号升位后:" + regNo );
regNo = Eighteen2fifteen(regNo);
System.out.println("18位身份证号降位后:" + regNo );
}
private static String Eighteen2fifteen(String regNo) {
regNo = regNo.substring(0,6)+regNo.substring(8,17);
return regNo;
}
private static String fifteen2Eighteen(String regNo) {
regNo = regNo.substring(0,6) + "19" + regNo.substring(6,15);
char [] regNoArr = regNo.toCharArray();
String [] str = {"7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"};
int sum = 0;
for(int i = 0 ; i< regNoArr.length; i++){
sum += Integer.parseInt(String.valueOf(regNoArr[i])) * Integer.parseInt(str[i]);
}
switch(sum%11){
case 0:
regNo += "1";
break;
case 1:
regNo += "0";
break;
case 2:
regNo += "X";
break;
case 3:
regNo += "9";
break;
case 4:
regNo += "8";
break;
case 5:
regNo += "7";
break;
case 6:
regNo += "6";
break;
case 7:
regNo += "5";
break;
case 8:
regNo += "4";
break;
case 9:
regNo += "3";
break;
case 10:
regNo += "2";
break;
default:
System.out.println("身份证升位出错。");
break;
}
return regNo;
}
}