Java处理15位身份证变18位

 

15位身份证变18位,18位身份证变15位

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2015年4月9日 15:11:44 星期四

 

 

 

@Bizlet("身份证18位转15位")
	public static String IdCar18to15(String idCard){
		idCard = idCard.trim();
		StringBuffer idCard15 =new StringBuffer(idCard);
		if(idCard!=null&&idCard.length()==18){
			idCard15.delete(17,18);
			idCard15.delete(6,8);
		}
		return idCard15.toString();
	}
	
	
	@Bizlet("身份证15位转18位")
	public static String IdCar15to18(String idCard){
		idCard = idCard.trim();
		StringBuffer idCard18 =new StringBuffer(idCard);
		//加权因子
		//校验码值
		char[]  checkBit = {'1','0','X','9','8','7','6','5','4','3','2'};
		int sum = 0;
		if(idCard!=null&&idCard.length()==18){
			idCard18.insert(6, "19");
			for(int index=0;index<idCard18.length();index++){
				char c  = idCard18.charAt(index);
				int ai = Integer.parseInt(new  Character(c).toString());
				//加权因子的算法
				int Wi = ((int)Math.pow(2, idCard18.length()-index))%11;
				sum = sum+ai*Wi;
			}
			int indexOfCheckBit = sum%11; //取模
			idCard18.append(checkBit[indexOfCheckBit]);
			
		}
		return idCard18.toString();
	}

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2015年4月9日 15:11:44 星期四

你可能感兴趣的:(18位身份证变15位,15位身份证变18位,身份证转换)