身份证号码升位

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/foget_over/article/details/66971853

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;
	}
}


猜你喜欢

转载自blog.csdn.net/foget_over/article/details/66971853