软件编程
位置:首页>> 软件编程>> java编程>> Java校验银行卡是否正确的核心代码

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

作者:病毒先生  发布时间:2022-01-28 19:53:29 

标签: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 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校验银行卡是否正确的核心代码网站的支持!

来源:http://blog.csdn.net/u012930316/article/details/54629520

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com