通过身份证号查出所在籍贯以及性别。
不想打字了看代码吧。一个朋友发的,但是比较有用吧,文件中录入的身份证地址的可能有些出入,极少数。
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.Scanner;
import java.util.Set;public class IDCardFactory {public static void main(String[] args) {Properties prop = new Properties();InputStream in = IDCardFactory.class.getResourceAsStream("city.properties");try {prop.load(in);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}validateIdcard(prop);}private static void validateIdcard(Properties prop) {// TODO Auto-generated method stubString idcard = new Scanner(System.in).nextLine().trim();char[] chs = idcard.toCharArray();int[] ins = new int[18];for (int i = 0; i < chs.length - 1; i++) {ins[i]= Integer.parseInt(String.valueOf(chs[i]));}int[] invali = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};int sum=0;for (int i = 0; i < ins.length-1; i++) {sum += ins[i] * invali[i];}int endint = sum % 11;String[] model ={"1","0","X","9","8","7","6","5","4","3","2"};String endstr = model[endint];String inendstr = String.valueOf(chs[chs.length-1]);if(!endstr.equals(inendstr)){System.out.println("身份证号码输入非法!");return;}String sex="男";if(ins[ins.length-2] % 2 == 0){sex = "女";}System.out.println("身份证号码:"+idcard+",籍贯:"+prop.getProperty(idcard.substring(0, 6))+",性别:"+sex);}private static void creatIdCard(Properties prop) {Set<Object> keys= prop.keySet();double ran = Math.random();long index = Math.round(ran * 3146); long starttime = -639129600000L;long dtcl = Math.round( ran * 1564617600000L);SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");String birthday = format.format(new Date(starttime + dtcl));String [] strs = {"0","1","2","3","4","5","6","7","8","9"};String sign="";for (int i = 0; i < 3; i++) {sign += strs[(int)Math.round(Math.random() * 8)];}Object[] keyArr = keys.toArray();String key = keyArr[(int)index].toString();String value = prop.getProperty(key);createIDNum(key,value,birthday,sign);}private static void createIDNum(String key,String value,String birthday,String sign) {char[] chs = (key+birthday+sign).toCharArray();int[] ins = new int[17];for (int i = 0; i < chs.length; i++) {ins[i]= Integer.parseInt(String.valueOf(chs[i]));}int[] invali = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};int sum=0;for (int i = 0; i < ins.length; i++) {sum += ins[i] * invali[i];}int endint = sum % 11;String[] model ={"1","0","X","9","8","7","6","5","4","3","2"};String endstr = model[endint];String idcardnum = key+birthday+sign+endstr;String sex="男";if(Integer.parseInt(sign) % 2 == 0){sex = "女";}System.out.println("身份证号码:"+idcardnum+",籍贯:"+value+",性别:"+sex);}}
这个是从键盘录入进行判断的。
.properties文件…在网盘里拿吧。
获取properties文件内容,不知道请自行百度。
提取码: aby1
通过身份证号查出所在籍贯以及性别。相关推荐
- 用python实现身份证号的解析(输出性别,生日,生肖,星座)
用python实现身份证号的解析,输出性别,生日,生肖,星 实现功能: 1.解析生日 2.解析性别 3.解析所在省份 4.解析生肖,星座 代码如下: ID=input('请输入18位身份证号码:'); ...
- 利用python识别身份证号后获取年龄和性别信息
利用python识别身份证号后获取年龄和性别信息 1. 实验目的 利用python识别身份证号后,从身份证号中获取年龄和性别信息 2. 主代码 1. 身份证号码识别 # !/usr/bin/pytho ...
- ## 根据身份证号自动生成年龄以及性别
根据身份证号自动生成年龄以及性别 <div class="form-group"><label class="col-sm-3 control-labe ...
- 【通用方法】身份证号校验、获取年龄性别生日(兼容一代二代身份证)
二代身份证正则表达式 /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2])) ...
- python 根据身份证号计算年龄和性别_excel如何根据身份证号计算男女出生日期、性别和年龄?分享了!...
工作中,有时需要从身份证号中提取性别.出生日期.年龄等.如果手工统计,不仅容易出错,还耗时耗力.春暖花开的时候,有那时间不如出去踏青散步,赏花游玩. 下面小编为大家分享一种方法,使用Excel函数轻松 ...
- python身份验证(身份证号中提取出生日期及性别)。
name=input("请输入姓名:") sfz=input("请输入你的的身份证号:") year=sfz[6:10] //出生年份 month=sfz[10 ...
- js通过身份证号获取出生年月日,性别,年龄
输入框输入身份证号时,我们可以通过js的方法来提取出身份证号里面的出生年月日以及性别,年龄,代码如下 /** 当type=1时获取出生日期,type=2时获取性别,type=3时获取年龄* */var ...
- C语言3:根据身份证号输出生年月日和性别
18位身份证号码第7到10位为出生年份(四位数),第11到12位为出生月份,第13 到14位代表出生日期,第17位代表性别,奇数为男,偶数为女. 用户输入一个合法的身份证号,请输出用户的出生年月日和性 ...
- C# 检验身份证号并提取生日和性别
/// <summary> /// 验证身份证号码 /// </summary> /// <param name=&quo ...
- 提取身份证号,解析身份证号出生年月、出生地、性别 的Python 实现与在线使用工具
从一篇文本中,抽取出所包含的 身份证号 并解析出其中的 省.市.县.出生年月.性别.校验码. 这个功能,JioNLP帮你实现 源码在 github:JioNLPhttps://github.com/ ...
最新文章
- Task04——零基础入门NLP - 基于深度学习的文本分类1
- LeetCode 732. 我的日程安排表 III(差分思想)
- 微软职位内部推荐-Principal Group Program Manager
- Mac OS下使用VS Code对C++程序进行debug的配置
- vs2013创建c++控制台应用程序
- 【待续】C数据结构2.3-顺序表之插入算法
- 关于GCD执行任务的理解
- python 谷歌翻译_Python:谷歌翻译20次的程序如何实现?
- 这70道Java微服务面试题,你能对几道?
- QQ浏览器怎么关闭云加速 QQ浏览器云加速关闭方法
- selenium(三)之webDriver与浏览器版本问题
- 大数据应用的典型案例
- UVA Team Queue
- pythorch 基本学习
- HDU 6411 带劲的and和
- Java List 过滤重复数据
- S3c2440 IIC
- linux 执行计划任务
- 先电openstack2.4云计算省赛任务一:iaas平台搭建任务
- 运行spark时不使用框架中默认提供的大量log4J日志输出