首页 > 开发 > Java > 正文

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

2024-07-13 10:03:19
字体:
来源:转载
供稿:网友

多说无益,贴代码:

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


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表