java代码验证身份证号码
来源:互联网 发布:python lxml 编辑:程序博客网 时间:2024/04/28 17:19
import java.util.Scanner;
/**
* 1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7910584216379105842
* 2.将这17位数字和系数相乘的结果相加。
* 3.用加出来和除以11,看余数是多少?
* 4余数只可能有012345678910这11个数字。其分别对应的最后一位身份证的号码为10X98765432。
* 5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。
* @author hanson
*
*/
/**
* 身份证验证类
*
* @author hanson
*
*/
public class IdCard {
/**
* 程序的主方法,入口。获取用户输入并输出验证结果
*
* @param args
* 参数数组
*/
public static void main(String[] args) {
Scanner strReader = new Scanner(System.in);
String idStr = strReader.nextLine();
if (check(idStr)) {
System.out.println("身份证验证正确");
} else {
System.err.println("对不起,这不是合法的身份证,请检查输入 !");
}
}
/**
* 求出身份证每一位加权乘积之和
*
* @param idStr
* 身份证号码
* @return 加权乘积之和
*/
private static int product(String idStr) {
int[] interest = new int[] { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
5, 8, 4, 2 };// 各位的权重
char[] id = idStr.toCharArray();// 将身份证各位提取为字符数组
int products = 0;
for (int i = 0; i < 17; i++) {
products = products + interest[i] * (id[i] - '0');
}
return products;
}
/**
* 对乘积之和进行求余并匹配最后的一位数字
*
* @param product
* 各位加权乘积之和
* @return 返回最后一个数字
*/
private static char match(int product) {
char[] last = new char[] { '1', '0', 'x', '9', '8', '7', '6', '5', '4',
'3', '2' };// 末尾匹配
return last[product % 11];
}
/**
* 将通过计算得到的最后一位数字和身份证号码的最后一位进行对比
*
* @param idStr
* 身份证号码
* @return 如果是相同的,则表示是正确的,返回true,如果两个数字不一样就返回false
*/
private static boolean check(String idStr) {
if (idStr.charAt(17) == match(product(idStr))) {
return true;
} else {
return false;
}
}
}
- java代码验证身份证号码
- java代码验证身份证号码经典版
- PHP 身份证号码验证代码
- java验证身份证号码
- Java验证身份证号码
- Java身份证号码数据验证
- JAVA 身份证号码有效性验证
- Java 身份证号码验证程序
- java验证身份证号码
- Java验证身份证号码是否合法
- java验证身份证号码
- Java实现身份证号码验证
- java身份证号码验证算法
- Java代码验证18位身份证号码是不是真的
- Java实现身份证号码的验证,JAVA后台验证身份证号码
- java实现—身份证号码验证
- java 身份证号码 验证 工具类
- Java 验证 身份证号码是否规范
- Android- Activity 和 Intent
- JavaScript高级程序设计学习总结二(JavaScript复杂的变量与内存问题)
- QListWidget的插入删除方法
- 什么是单片机?51单片机学前预备知识
- redis的排序
- java代码验证身份证号码
- int 作为日期字段的类型
- IPC经典入侵
- CKEDITOR各种操作 获取CKEDITOR的内容|添加功能
- Linux系统的头文件和库文件搜索路径
- hdu1787
- Repeater、GridView、DataList时间格式控制
- PHP设计模式漫谈之结构模式
- 孙多洋《资本开战》:老板不学习,企业难无敌