欢迎来到51自学网!

51自学网

当前位置: 主页 > 数据库 >

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

时间:2018-07-26 16:55来源:网络整理 作者:51自学网
多说无益,贴代码: /*** 校验银行卡卡号** @param cardId* @return*/public static boolean checkBankCard(String cardId) {char bit = getBankCardCheckCode(cardId.substring(0, cardId.length() - 1));return cardId.charAt(cardId.length()

多说无益,贴代码:

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

您可能感兴趣的文章:

(责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容