月度归档:2015年11月

java实现Luhn校验

Luhn一般用于银行卡等校验,卡号的最后一位是校验位

 

private static boolean isLuhn(String strcardnum) {
		boolean ret=false;
		int sum=0;
		for(int i=1;i<strcardnum.length();i++){ int num=Integer.valueOf(strcardnum.substring(strcardnum.length()-i-1,strcardnum.length()-i)); if(i %2 !=0)num=num *2; if(num >=10){
				sum=sum + num /10;
				sum =sum + num %10;
			}else{
				sum=sum+num;
			}
			
		
		}
		int vc=sum % 10;
		if( vc!=0){
			 vc=Math.abs(  vc-10);
		}		
		return strcardnum.substring(strcardnum.length()-1).equalsIgnoreCase(String.valueOf(vc));
	}