Java校验银行卡是否正确的核心代码

网友投稿 309 2023-06-17


Java校验银行卡是否正确的核心代码

多说无益,贴代码:

/**

* 校验银行卡卡号

*

* @param cardId

* @return

*/

public static boolean checkBankCard(String cardId) {

char bit = getBankCardCheckCode(cardId

.substring(0, cardId.length() - 1));

return cardId.charAt(cardId.length() - 1) == bit;

}

/**

* 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位

*

* @param nonCheckCodeCardId

* @return

*/

public static char ghttp://etBankCardCheckCode(String nonCheckCodeCardId) {

int cardLenth = nonCheckCodeCardId.trim().length();

if (nonCheckCodeCardId == null || cardLenth == 0

|| !nonCheckCodeCardId.matches("\\d+")) {

throw new IllegalArgumentException("不是银行卡的卡号!");

}

char[] chs = nonCheckCodeCardId.trim().toCharArray();

int luhmSum = 0;

for (int i = chs.length - 1, j = 0; i >= 0; i--, j++) {

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:linux配置jdk环境变量简单教程
下一篇:简单注解实现集群同步锁(spring+redis+注解)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~