Java校验银行卡是否正确的核心代码
多说无益,贴代码:
/**
*校验银行卡卡号
*
*@paramcardId
*@return
*/
publicstaticbooleancheckBankCard(StringcardId){
charbit=getBankCardCheckCode(cardId
.substring(0,cardId.length()-1));
returncardId.charAt(cardId.length()-1)==bit;
}
/**
*从不含校验位的银行卡卡号采用Luhm校验算法获得校验位
*
*@paramnonCheckCodeCardId
*@return
*/
publicstaticchargetBankCardCheckCode(StringnonCheckCodeCardId){
intcardLenth=nonCheckCodeCardId.trim().length();
if(nonCheckCodeCardId==null||cardLenth==0
||!nonCheckCodeCardId.matches("\\d+")){
thrownewIllegalArgumentException("不是银行卡的卡号!");
}
char[]chs=nonCheckCodeCardId.trim().toCharArray();
intluhmSum=0;
for(inti=chs.length-1,j=0;i>=0;i--,j++){
intk=chs[i]-'0';
if(j%2==0){
k*=2;
k=k/10+k%10;
}
luhmSum+=k;
}
return(luhmSum%10==0)?'0':(char)((10-luhmSum%10)+'0');
}
感觉这个复制过去即可...所以我也没深入研究.感觉浪费时间.
以上所述是小编给大家介绍的Java校验银行卡是否正确的核心代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!