通过身份证号查出所在籍贯以及性别。
生活随笔
收集整理的這篇文章主要介紹了
通过身份证号查出所在籍贯以及性别。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不想打字了看代碼吧。一個朋友發的,但是比較有用吧,文件中錄入的身份證地址的可能有些出入,極少數。
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
總結
以上是生活随笔為你收集整理的通过身份证号查出所在籍贯以及性别。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西威变频器avo下载调试资料_步骤详解|
- 下一篇: 华为数通NA-NP学习笔记(个人精简)