Java substring实现键入身份证信息,提取出个人信息并计算出年龄
1.说明
用户输入身份证号码,根据身份证号码,提取出归属地、出生年月、性别等信息,并计算出年龄
例如:
-
53123420230625123X
省/市:云南
性别:男
出生年月:2023年06月25日
年龄:0岁//归属地数组 static String[] ProvincesName = {"北京", "天津市", "河北", "山西", "内蒙", "辽宁", "吉林", "黑龙江", "上海", "江苏", "浙江", "安徽", "福建", "江西", "山东省", "河南", "湖北", "湖南", "广东", "广西", "海南", "重庆", "四川", "贵州", "云南", "陕西", "甘肃", "青海", "宁夏", "新疆", "台湾", "香港", "澳门"}; //归属地编码 static String[] ProvincesId = {"11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37", "41", "42", "43", "44", "45", "46", "50", "51", "52", "53", "61", "62", "63", "64", "65", "71", "81", "82"};
-
class
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;
2.实现思路
如图,为身份证号码的信息图示。因此,利用substring方法,我们便能截取到身份证号码中的每一段的信息,最后将截取到的信息进行比对循引、转换等操作,最后打印输出用户的信息。
过程:
- 利用substring方法截图到各项信息编码,然后拼接成为一个新的字符串
- 利用返回的Info字符串,针对各项信息做特定处理:
- 地区编码:与地区编码数组进行比对后返回其地名索引
- 出生年月:与单位进行拼接
- 性别:转换为整数类型,然后进行奇偶判断
- 年龄:将出生年月转换为Date类型,与当前Date进行计算
3.代码实现
StringBean类
package com.java.StringTest;
import java.util.Scanner;
public class StringBean {
private String str;
private int Digital;
public int getDigital() {
return Digital;
}
public void setDigital() {
Scanner scan =new Scanner(System.in