根据身份证号判断该人的年龄、性别、出生年月日
问题描述解题思想完整代码运行截图问题描述
输入身份证号输入:123456200101011212今年是哪一年:
输出
该人的性别为:男性出生年月为:2001年01月01日年龄为:20周岁
解题思想
获取信息 信息位置 获取方法substring()(获取新的字符串)substring()方法连接
String year = (String) id.subSequence(6, 10);String month = (String) id.subSequence(10, 12);String day = (String) id.subSequence(12, 14);String sex = (String) id.subSequence(16, 17);
将字符串转变成整形Integer.parseInt()
字符串转变成整形连接
我们会在计算周岁、判断性别的时候,用到加减,所以须将字符串变成整形
int y = Integer.parseInt(year);int s = Integer.parseInt(sex);
完整代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入身份证号:");String id = sc.next();System.out.print("今年是那一年:");int n=sc.nextInt();String year = (String) id.subSequence(6, 10);String month = (String) id.subSequence(10, 12);String day = (String) id.subSequence(12, 14);String sex = (String) id.subSequence(16, 17);int y = Integer.parseInt(year);int s = Integer.parseInt(sex);System.out.print("该人的性别为:");if (s % 2 == 0) {System.out.println("女性");} else {System.out.println("男性");}System.out.println("出生年月为:" + year + "年" + month + "月" + day + "日");System.out.println("年龄为:" + (n - y) + "周岁");}}