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

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

多说无益,贴代码:


/**
  * 校验银行卡卡号
  *
  * @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

标签:java,银行卡,校验
0
投稿

猜你喜欢

  • 在springboot中实现个别bean懒加载的操作

    2023-11-25 09:44:11
  • java实现随机数生成器

    2023-06-15 04:26:53
  • vue+springboot前后端分离工程跨域问题解决方案解析

    2023-08-06 06:51:10
  • Studio 编译报错:compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.的解决办法

    2023-06-19 17:19:41
  • El表达式使用问题javax.el.ELException:Failed to parse the expression的解决方式

    2023-11-24 12:47:13
  • Java实现的两个线程同时运行案例

    2023-05-14 09:10:40
  • 基于idea 的 Java中的get/set方法之优雅的写法

    2023-11-26 20:22:50
  • JDBC核心技术详解

    2023-12-09 12:22:28
  • 兼容Spring Boot 1.x和2.x配置类参数绑定的工具类SpringBootBindUtil

    2023-11-03 05:35:06
  • 从dubbo zookeeper注册地址提取出zookeeper地址的方法

    2023-04-29 18:51:16
  • 简述Java中的四种引用类型

    2023-11-29 00:46:56
  • Java中Prime算法的原理与实现详解

    2022-06-11 23:16:29
  • 深入理解Java虚拟机体系结构

    2021-09-15 19:46:53
  • Java数组越界问题实例解析

    2023-10-25 18:16:23
  • Java获取字符串编码格式实现思路

    2023-08-14 12:35:38
  • SpringBoot 开发提速神器 Lombok+MybatisPlus+SwaggerUI

    2022-07-08 07:40:23
  • SpringBoot使用Thymeleaf模板引擎访问静态html的过程

    2023-11-25 10:04:44
  • Spring @Profile注解详解

    2023-04-20 06:26:16
  • maven手动上传jar包示例及图文步骤过程

    2023-11-13 22:10:57
  • Java中不可或缺的关键字volatile详析

    2023-07-22 12:11:29
  • asp之家 软件编程 m.aspxhome.com