代码如下:
package cn.gov.csrc.util;
/**
* 18 位身份证验证器
*
* @author admin
*
*/
public class IDCard {
final int[] wi = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 };
final int[] vi = { 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 };
private int[] ai = new int[18];
public IDCard() {
}
public boolean Verify(String idcard) {
if (idcard.length() == 15) {
idcard = uptoeighteen(idcard);
}
if (idcard.length() != 18) {
return false;
}
String verify = idcard.substring(17, 18);
if (verify.equals(getVerify(idcard))) {
return true;
}
return false;
}
public String getVerify(String eightcardid) {
int remaining = 0;
if (eightcardid.length() == 18) {
eightcardid = eightcardid.substring(0, 17);
}
if (eightcardid.length() == 17) {
int sum = 0;
for (int i = 0; i < 17; i++) {
String k = eightcardid.substring(i, i + 1);
ai[i] = Integer.parseInt(k);
}
for (int i = 0; i < 17; i++) {
sum = sum + wi[i] * ai[i];
}
remaining = sum % 11;
}
return remaining == 2 ? "X" : String.valueOf(vi[remaining]);
}
public String uptoeighteen(String fifteencardid) {
String eightcardid = fifteencardid.substring(0, 6);
eightcardid = eightcardid + "19";
eightcardid = eightcardid + fifteencardid.substring(6, 15);
eightcardid = eightcardid + getVerify(eightcardid);
return eightcardid;
}
public static void main(String[] args) {
String idcard1 = "350211197607142059";
String idcard2 = "350211197607442059";
String idcard3 = "140222198911060538";
IDCard idcard = new IDCard();
System.out.println(idcard.Verify(idcard1));
System.out.println(idcard.Verify(idcard2));
System.out.println(idcard.Verify(idcard3));
}
}
分享到:
相关推荐
标题中的“一个 Java 校验身份证号码的,很强的”指的是使用 Java 语言编写的身份验证工具,用于检查中国大陆居民的身份证号码(身份证18位)的合法性。在 Java 开发中,这样的工具可以帮助程序员快速验证输入数据的...
在Java中,我们可以创建一个方法来验证身份证号码的合法性。这个方法通常包括以下几个步骤: 1. **长度检查**:确保输入的身份证号码长度为18位。 2. **地址码检查**:根据前6位数字判断是否对应我国的行政区划代码...
5. **Java实例**:`FaceRecognitionService.java` 文件很可能是一个实现了腾讯AI身份证验证和人脸识别功能的Java类。在Java编程中,类是组织代码的基本单元,此类可能包含调用腾讯AI接口的方法,处理请求、解析响应...
### Struts2 + AJAX 实现无刷新验证身份证号是否已注册及正确性的技术解析 #### 一、背景介绍 在Web应用开发中,确保用户输入数据的有效性和安全性是非常重要的环节。尤其是在涉及到敏感信息如身份证号时,需要...
这是一个基于Java Swing和MySQL数据库构建的信息管理系统,专为身份证号码查询和复合条件查询设计。系统提供了数据的增、删、改、查等基础操作,适用于需要处理个人信息的多种场景,如人力资源管理、会员管理等。...
在Java中,可以编写一个类来验证身份证号码的合法性,通过正则表达式检查其格式,并使用相关算法计算校验码以确认号码正确。此外,这个功能可能还涉及对身份证信息的解析,如从身份证号码中提取出生日期和性别。 接...
在这个项目中,Java可能用于实现上述的所有后台功能,如用户验证、数据库操作等。 - **JSP (JavaServer Pages)**:JSP是Java的一种动态网页技术,允许在HTML中嵌入Java代码,用于生成动态网页内容。在ATM应用中,...
在本项目中,"用Java实现的一个模拟的银行系统"是一个基于Java编程语言构建的银行管理系统,它旨在演示和实践银行的核心业务流程。这个系统涵盖了银行日常操作中的关键功能,如开户、存款、取款和转账。以下是这些...
库中可能包含各种字符串验证方法,如检查邮箱格式、电话号码格式、身份证号有效性等,确保数据的准确性和合法性。 4. **进制操作工具**:进制转换在计算机科学中非常常见,例如二进制、八进制、十进制和十六进制...
- 身份证号码的验证通常需要使用正则表达式,检查号码格式是否符合国家标准。 - 号码归属地查询可能涉及网络请求,获取到的数据通常是JSON格式,需要使用Gson或Jackson库进行解析。 **3. 网络请求** - Android中...
同时,后台可能会实现身份验证和授权机制,如OAuth2.0或JWT,确保只有经过认证的警务人员才能访问系统。 此外,考虑到移动设备的特性和网络环境的不稳定,系统可能还需要实现离线缓存功能,允许警务人员在无网络...
本实例主要讲解如何利用Ajax技术与JSP配合,实现实时验证用户输入的身份证号码的有效性。 **一、Ajax简介** Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器交换数据并局部...
在IT行业中,身份证读卡器是一种常见的硬件设备,主要用于读取和验证第二代居民身份证的信息。二代身份证读卡器PB9是一款专为此目的设计的产品,它具有强大的数据处理能力和便捷的USB接口,使得与计算机或其他设备的...
这个系统主要针对本科层次的学生,作为软件工程课程的实践作业,帮助学生掌握Java GUI(图形用户界面)设计与实现、数据库管理和银行业务逻辑的编程技能。 【描述】:该系统主要包括用户登录和注册功能,以及管理员...
Java可以实现后台逻辑,如生成入住单、计算住宿费用、处理押金和退款等。在处理费用时,可能需要用到计算公式,Java的数学库提供必要的支持。同时,退房后,系统应更新房间状态,以便再次出租。 除此之外,系统还...
4. **数据验证**:为了保证数据的准确性,系统在接收到用户输入后,会进行数据验证,例如检查输入的工资是否为有效数字,身份证号码格式是否正确等。 5. **异常处理**:Java中的try-catch语句块用于捕获和处理可能...
它可以验证用户输入,比如检查邮箱格式、身份证号码合法性等,减少无效请求对服务器的压力。同时,JavaScript还可以实现动态效果,如时间选择器、下拉菜单动画等,提高用户的操作体验。 HTML(HyperText Markup ...
2. 入住人信息管理:系统提供录入、查看和修改入住人信息的功能,支持身份证验证和联系方式验证,确保客人信息的准确性,为提供个性化服务提供数据支持。 3. 客房信息管理:涵盖客房的基本信息如房号、类型、价格等...
此外,可能还涉及到数据库技术,如使用SQL进行数据操作,以及使用JDBC(Java Database Connectivity)进行数据库连接,以实现与后台数据库的交互。 总的来说,“旅游公司旅客订单管理程序[JAVA]”是JAVA语言在旅游...
- **身份证验证**:验证中国身份证号码的合法性,通常需要更复杂的算法。 此外,还有其他功能类的JavaScript代码,如: - **时间与相关控件**:包括日历、时间控件、万年历等。 - **表单动态操作**:自动生成表单...