一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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

时间:2017-02-09 编辑:简简单单 来源:一聚教程网

多说无益,贴代码:

 

 代码如下复制代码

/**

   * 校验银行卡卡号

   *

   * @param cardId

   * @return

   */

  publicstaticbooleancheckBankCard(String cardId) {

    charbit = getBankCardCheckCode(cardId

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

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

  }

  /**

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

   *

   * @param nonCheckCodeCardId

   * @return

   */

  publicstaticchargetBankCardCheckCode(String nonCheckCodeCardId) {

    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] -Ɔ'

      if(j %2==0) {

        k *=2;

        k = k /10+ k %10;

      }

      luhmSum += k;

    }

    return(luhmSum %10==0) ?Ɔ': (char) ((10- luhmSum %10) +Ɔ');

  }

 

感觉这个复制过去即可...所以我也没深入研究.感觉浪费时间.

热门栏目