工作笔记
public static void isIdCard(String idCard){
int interval = 120;
String cert = idCard;
if(idCard.length() == 15){
System.out.println("传入15位长度证件号:"+idCard);
cert = change15to18(idCard);
System.out.println("转换成18位长度证件号:"+cert);
}
if(cert.length()==18){
if((cert.indexOf("X")>0 && cert.indexOf("X")!=17)||(cert.indexOf("x")>0 && cert.indexOf("x")!=17)){
System.out.println("身份证格式错误");
return;
}
Calendar cal = Calendar.getInstance();
int sysY = cal.get(Calendar.YEAR);
int y = Integer.parseInt(cert.substring(6, 10));
if(y<(sysY-interval) || y>(sysY+interval)){
System.out.println("证件的年度非法");
return;
}
int m = Integer.parseInt(cert.substring(10,12));
if(m<=0 || m>12){
System.out.println("证件的月度非法");
return;
}
int d = Integer.parseInt(cert.substring(12, 14));
if(d<=0 || d>31){
System.out.println("证件的日度非法");
return;
}
if(cert.substring(17)=="x"||cert.substring(17)=="X"){
if(!getVerifyBit(cert).equalsIgnoreCase("x")){
System.out.println("证件非法,最后一位不为x");
}
return;
}else{
if(!cert.substring(17).equals(getVerifyBit(cert))){
System.out.println("证件非法,校验位不正确");
return;
}
}
System.out.println("证件合法");
}
}
//计算校验位(最后一位)
private static String getVerifyBit(String idCard){
int[] wi = new int[]{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
String[] vi = {"1","0","x","9","8","7","6","5","4","3","2"};
int[] ai = new int[idCard.length()];
idCard = idCard.substring(0,17);
for(int i=0;i<idCard.length();i++){
ai[i]= Integer.parseInt(idCard.substring(i, i+1));
}
int num = 0;
for(int i=0;i<17;i++){
num += ai[i]*wi[i];
}
int remaining = num % 11;
return remaining==2?"x":vi[remaining];
}
private static String change15to18(String idCard15){
String idCard = "";
idCard = idCard15.substring(0,6) + "19";
idCard = idCard+idCard15.substring(6, 15);
idCard = idCard + getVerifyBit(idCard);
return idCard;
}
分享到:
相关推荐
在Java编程领域,身份证验证程序是一个实用的工具,它能够检查输入的身份证号码是否符合中国的身份证格式,并从中提取出如年龄、性别和籍贯等信息。以下是对这个主题的详细阐述: 身份证号码验证首先需要理解中国...
java身份证验证程序--可以用来做实验用
java身份证验证代码实现 java身份证验证代码实现是指使用java语言编写的身份证号码验证程序。身份证号码是一种唯一的身份识别码,用于识别一个人的身份。java身份证验证代码实现可以用于验证身份证号码的合法性和...
在Java编程语言中,身份证验证是一项常见的需求,用于确认输入的身份证号码是否符合中国的身份证号码规则。本项目提供了两个核心类:IdcardValidator和IdcardInfoExtractor,以及一个"身份证验证说明.txt"文档,用于...
JAVA身份证号码验证工具,通过身份证号码生成规则,能验证15位、18位身份证号码,必备验证方式
Java身份证验证方法主要涉及到对18位公民身份号码的合法性检查,这包括地址码、出生日期码、顺序码和校验码的验证。在Java中,实现身份证验证可以通过编写一个函数,该函数接收一个字符串参数,即身份证号码,并进行...
不完全验证身份证号码合法性,能够验证省份,但是因为信息收集不全,所以无法验证是哪个市,那个县等信息
在Java编程中,身份证号码验证是一项常见的需求,用于确保输入的身份信息准确无误。身份证号码是由18位数字组成的,包含个人的出生日期、性别、地区等信息,并且具有特定的校验规则。本篇文章将深入讲解如何使用Java...
针对身份证号码的校验,以及能自动将身份证从15位升级为18位
这个"Java身份证号查询"项目提供了一个解决方案,允许我们通过身份证号码获取个人的出生地、年龄等关键信息。下面将详细阐述实现这一功能所涉及的Java知识点。 首先,中国的身份证号码是由18位数字组成的,前6位...
正中的JAVA源代码程序!public static void main(String[] args) throws IOException{ //输入身份证号码 System.out.println("请输入一个身份证号码:"); BufferedReader br=new BufferedReader(new ...
身份证验证算法是计算机编程中一个常见的实用功能,特别是在处理个人数据和进行实名认证的场景下。在Java中实现18位身份证格式验证涉及到多个步骤,主要包括:校验位计算、出生日期转换以及地区编码验证。下面将详细...
最完善的身份证号码合法性校验Java算法,适合Android平台,可以直接拿来在项目中使用,正则表达式。
身份证验证代码java,包括最后一位有效性的验证。身份证验证代码java,包括最后一位有效性的验证。
本资源“Java进行身份证正反面信息识别.rar”提供了一种利用Java编程语言结合百度提供的库来实现身份证信息读取的方法。下面将详细阐述相关知识点。 1. **身份证信息识别**:身份证信息识别是指通过技术手段自动...
【标题】"身份证验证系统 java"所涉及的知识点主要集中在两个核心领域:身份证验证技术和Java编程语言的应用。身份证验证系统通常用于确认个人身份的合法性,它通过特定算法和数据库查询来验证身份证号码是否真实...
简单的Java身份证验证程序,包含15位和18位,验证了生日,性别和校验位,未验证地区码
本文将详细讲解如何在JAVA+jsp环境下进行身份证验证。 首先,我们需要理解身份证号码的构成。中国居民身份证号码由18位数字组成,分为5个部分:地址码(6位)、出生日期码(8位)、顺序码(3位)、校验码(1位)。...
### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...
在Java编程中,验证身份证号码的校验码是否正确是一项常见的任务,特别是在处理个人信息时,如用户注册、信息录入等场景。本教程将深入探讨如何使用Java实现这一功能。 首先,我们需要了解身份证号码的基本结构。...