身份证号码校验算法 java实现
2015-11-22 21:15
429 查看
import java.util.Scanner;
public class CheckoutID {
}
public class CheckoutID {
int[] weight = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; // 十七位数字本体码权重 char[] validate = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' }; // mod11,对应校验码字符值 // 得到校验码 public char getCheckoutCode(String Idnumber17) { int sum = 0; // wi*Ai和 int mod = 0; // 进行模11运算 try { for (int i = 0; i < 17; i++) { sum += Integer.parseInt(String.valueOf(Idnumber17.charAt(i))) * weight[i]; } } catch (Exception e) { return 'a'; } mod = sum % 11;// 进行模11运算 return validate[mod];// 返回校验码 } public static void main(String[] args) { CheckoutID cid = new CheckoutID(); String idNumber = ""; Scanner sc = new Scanner(System.in); System.out.println("请输入要校验的身份证号:"); do { idNumber = sc.nextLine(); if (idNumber.length() != 18) { System.out.println("长度不合法请重新输入"); idNumber = ""; } } while (idNumber.equals("")); String id17 = idNumber.substring(0,17); char id1 = idNumber.charAt(17); if(cid.getCheckoutCode(id17) == id1) { System.out.println("身份证号正确"); String areaCode = idNumber.substring(0,6); System.out.println("地区码:" + areaCode); String birthday = idNumber.substring(6,14); System.out.println("生日:" + birthday); int sexCode = Integer.parseInt(idNumber.substring(14,17)); if(sexCode%2 != 0) { System.out.println("性别码:" + sexCode + " 性别:男"); } else { System.out.println("性别码:" + sexCode + " 性别:女"); } } else { System.out.println("输入的身份证号为假"); } }
}
相关文章推荐
- java.util.regex 包中自带的两个 正则表达式类的使用总结
- JAVA常用算法手册学习笔记
- JAVA IO------File
- Rectangle Area leetcode oj java
- JavaCV 0.7 环境配置
- [置顶] Java反射探索研究
- Java单例集合下set接口及其常用实现类
- Java内功提升之阶段练习
- Java 代码运行洞察库 Metrics
- Spring WebSocket简单入门测试Demo(网页及时聊天)
- Java 如何有效地避免OOM:善于利用软引用和弱引用
- java基本知识(一)
- java中的内部类总结
- Java的三种注释 Javadoc标记*
- 三大Javaweb框架的工作原理--Struts2+Hibernate+Spring3
- 用Hibernate与Struts实现简单的项目的登录与注册
- 【SpringMVC系列三】 EasyUI +springMVC 乱码问题
- 【SpringMVC系列二】 EasyUI+SpringMVC--Maven项目--WEB-INF安全目录访问jsp
- 【SpringMVC系列一】 EasyUI + SpringMVC 解决静态资源访问
- Eclipse改变字符串大小写快捷键