当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。

该校验的过程:
1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。
2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。
3、将奇数位总和加上偶数位总和,结果应该可以被10整除。

例如,卡号是:5432123456788881

逆向奇数位为 4 2 2 4 6 8 8 1 和 = 35
逆向偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和 = 35。
最后 35 + 35 = 70 可以被10整除,认定校验通过。

请编写一个程序,从标准输入获得卡号,然后判断是否校验通过。
通过显示:“成功”,否则显示“失败”。

比如,
输入:356827027232780
程序输出:成功

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);String S = in.next();int sum1 = 0, sum2 = 0;for(int i = S.length() - 1, j = 1;i >= 0;i--, j++) {if(j % 2 == 1)sum1 = sum1 + (S.charAt(i) - '0');else {int temp = (S.charAt(i) - '0') * 2;if(temp >= 10)temp = temp - 9;sum2 = sum2 + temp;}}if((sum1 + sum2) % 10 == 0)System.out.println("成功");elseSystem.out.println("失败");}
}

Java实现信用卡校验相关推荐

  1. JBPM流程部署校验之java利用XSD校验XML

    JBPM流程定义校验之java利用XSD校验XML 上篇我们学习了在.net中怎样利用XSD来验证xml,今天我们来看一下在java中怎样实现利用xsd来校验xml! /**  *   */ pack ...

  2. java输出结果校验_2. Bean Validation声明式校验方法的参数、返回值

    你必须非常努力,才能干起来毫不费力.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习. ✍前言 ...

  3. java 实体字段校验@Valid - @NotNull @NotEmpty @NotBlank - ValidExceptionHandler

    java 实体字段校验@NotNull @NotEmpty @NotBlank 注意在使用 @NotBlank 等注解时,一定要和 @valid 一起使用,否则 @NotBlank 不起作用. 1.@ ...

  4. CRC查表法——表的由来及Java实现CRC8校验算法

    转载请标明出处: http://blog.csdn.net/xx326664162/article/details/51718857 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定 ...

  5. java偶校验计算代码_191120_02 Java常用加密校验转换算法汇总

    Java常用加密校验转换算法汇总 作者:邵发 官网:http://afanihao.cn/java 本文是Java学习指南系列教程的官方配套文档.内容介绍Java里的常用算法的使用,包含转换Hex / ...

  6. java中注解动态传参_Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)...

    Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)java 前言:因为前段时间忙于写接口,在接口中须要作不少的参数校验,本着简洁.高效的原则,便写了这个小工具供本身使 ...

  7. Java实现CRC16校验算法

    本文主要记录java版的crc校验算法,顺带贴上c的crc校验函数 先上c的校验函数,本文java版的校验就是根据此函数而来的,希望能帮到大家 当时开发时通过一个在线检验工具辅助开发的.工具链接戳我 ...

  8. java 后端校验_如何实现Java后端数据校验?看这篇就足够!

    前言 每次我们在搭建一个开源项目的首要任务包括:项目的统一异常处理.统一结果封装以及做项目的数据校验,在前后端分离的情况下,不仅前端需要做数据校验,同样后端也要实现,前端主要使用一些类似与jQuery ...

  9. Java使用luhn校验算法实现银行卡号合法性校验获取银行卡号所属银行

    Luhn校验算法或是Luhn 公式,也被称作"模10算法".它是一种简单的校验公式,一般会被用于身份证号码,IMEI号码,美国供应商识别号码, 或是加拿大的社会保险号码的验证.该算 ...

最新文章

  1. 猎八哥浅谈存储过程——数据库中的双刃剑
  2. driver: Linux设备模型之input子系统详解
  3. 8. Leetcode 26. 删除有序数组中的重复项 (数组-同向双指针-快慢指针)
  4. 7-26复习重载并实现重载部分符号
  5. sklearn训练模型保存与加载
  6. Fckeditor配置 for ASP.NET
  7. 关于Java你不知道的10件事
  8. python--从入门到实践--chapter 15 16 17 生成数据/下载数据/web API
  9. Net设计模式实例之建造者模式(Builder Pattern)(1)
  10. 移动应用发展现状_移动应用开发平台:现状和趋势
  11. js中文乱码解决方法
  12. 硬件编程语言和编程器件
  13. java整钱兑零美元换算成美分,人民币和美元大写格式在线工具,美元美金数字金额转换大写,外币大写金额...
  14. LDT面试:实验室开发诊断试剂监管模式(Laboratory Developed Test,LDT)
  15. ldc java_DMD与GDC与LDC的比较
  16. 转载:SpringBoot非官方教程 | 第二十四篇: springboot整合docker
  17. Spring Data JPA手动管理事务
  18. 开发辅助:从Eclipse转到Android Studio/Intellij Idea需要做的设置
  19. 网络 - 电脑代理 - 学习/实践
  20. 等保三级,多级等保认证的一点了解

热门文章

  1. python使用requests爬取淘宝搜索页数据
  2. Uber Thomas 论文整理
  3. (转)腾讯区块链方案白皮书:底层技术平台及五大场景解决方案
  4. [4G5G专题-109]:部署 - LTE RF射频优化的流程、原因综合分析、解决办法大全
  5. uni-app安卓禁止截屏,一行代码
  6. Genero BDL concepts (BDL概念)
  7. Grafana+Prometheus实现Ceph监控和cephfs的基本使用(二)
  8. WIN10安装VC6.0无法使用的解决办法
  9. html根据地点名称查坐标,根据地址查询经纬度Js
  10. XMU2018摸底测试 星际战争I(Easy)