设计一个java 应用程序,其功能为:输入两个身份证字符串,判断两个身份证是否相同,确定身份证所属省份和性别;提取身份证出生日期,输出两个身份证相关信息。

身份证号码属于敏感信息这里就不做效果展示了,直接代码走起。

Inputid类

import java.util.Scanner;
public class InputId {
	public static void main(String[] args) {
		String regex = "[1-9][0-9]{16}[a-zA-Z0-9]{1}";//正则表达式判断输入是否合法
		try (Scanner input = new Scanner(System.in)) {
			String number1 = "";
			String number2 = "";
			//用while循环输入对的数据
			while (true) {
				System.out.println("请输入第一个身份证:");
				number1 = input.next();
				if (number1.matches(regex)) {
					break;
				} else {
					System.out.println("身份证输入错误");
				}
			}
			while (true) {
				System.out.println("请输入第二个身份证:");
				number2 = input.next();
				if (number2.matches(regex)) {
					break;
				} else {
					System.out.println("身份证输入错误");
				}
			}
            //判断两个身份证号码是否相同
			if (number1.equals(number2)) {
				System.out.println("两个身份证号码相同");
			} else {
				System.out.println("两个身份证号码不同");
			}
			System.out.println(number1);
			function.sex(number1);
			function.age(number1);
			System.out.print("籍贯为:");
			function.origin(number1);
			System.out.println(number2);
			function.sex(number2);
			function.age(number2);
			System.out.print("籍贯为:");
			function.origin(number2);
		}

	}
	}

function类

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;

public class function {
	//判断性别
	public static void sex(String number) {
		char c = number.charAt(number.length() - 2);
		if (c % 2 == 1) {
			System.out.println("性别为男");
		} else {
			System.out.println("性别为女");
		}
	}
	//输出出生日期与年龄
	public static void age(String number)  {
		String year;
		String yue;
		String day;
		String rq;
		year =number.substring(6).substring(0, 4);
        yue = number.substring(10).substring(0, 2);
        day = number.substring(12).substring(0,2);
        System.out.println("出生年月为:"+year+"年"+yue+"月"+day+"日");
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd");
        rq=number.substring(6,14);
        LocalDate date1 = LocalDate.parse(rq,dtf);
        LocalDate date = LocalDate.now();
	    long lag=date1.until(date,ChronoUnit.DAYS);
	    int age=(int) (lag/365);
        System.out.println("年龄为:" + age+"岁");
	}
    //判断来自哪个省份
	public static void origin(String number) {
		int shengfen;
		String s;
		s = number.substring(0, 2);
		shengfen = Integer.parseInt(s);
		switch (shengfen) {
		case 11:
			System.out.println("北京市");
			break;
		case 12:
			System.out.println("天津市");
			break;
		case 13:
			System.out.println("河北省");
			break;
		case 14:
			System.out.println("山西省");
			break;
		case 15:
			System.out.println("内蒙古自治区");
			break;
		case 21:
			System.out.println("辽宁省");
			break;
		case 22:
			System.out.println("吉林省");
			break;
		case 23:
			System.out.println("黑龙江省");
			break;
		case 32:
			System.out.println("上海市");
			break;
		case 33:
			System.out.println(" 江苏省");
			break;
		case 34:
			System.out.println("浙江省");
			break;
		case 35:
			System.out.println("安徽省");
			break;
		case 36:
			System.out.println("福建省");
			break;
		case 37:
			System.out.println(" 江西省");
			break;
		case 41:
			System.out.println("山东省");
			break;
		case 42:
			System.out.println(" 河南省");
			break;
		case 43:
			System.out.println("湖北省");
			break;
		case 44:
			System.out.println("广东省");
			break;
		case 45:
			System.out.println(" 广西壮族自治区");
			break;
		case 46:
			System.out.println("海南省");
			break;
		case 50:
			System.out.println("重庆市");
			break;
		case 51:
			System.out.println("四川省");
			break;
		case 52:
			System.out.println("贵州省");
			break;
		case 53:
			System.out.println("云南省");
			break;
		case 54:
			System.out.println(" 西藏自治区");
			break;
		case 61:
			System.out.println("陕西省");
			break;
		case 62:
			System.out.println("甘肃省");
			break;
		case 63:
			System.out.println("青海省");
			break;
		case 64:
			System.out.println("宁夏回族自治区");
			break;
		case 65:
			System.out.println("新疆维吾尔自治区");
			break;
		case 71:
			System.out.println("台湾省");
			break;
		case 81:
			System.out.println("香港特别行政区");
			break;
		case 82:
			System.out.println("澳门特别行政区");
			break;
		default:
			System.out.println("未查到籍贯");
		}
	}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值