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校验银行卡是否正确的核心代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!