设计程序
- 要求:
1、键盘输入身份证号(不包含字母)
2、判断此人是出生年月日
3、此人男女(最后一位是奇数男,偶数女)
4、是否成年
解析:
- 键盘录入
Scanner sc = new Scanner(System.in);
String idCard = sc.nextLine();
- 校验身份证号格式
先判断长度
判断格式,就需要一个字符一个字符判断,那么就要遍历,通过String 中的 charAt( int i ) 拿出字符,再通过 Character 的 isLetter(char ch)方法判断是否是字母
- 根据身份证号特性,截取其中年月日
身份证输入的是字符串,且14位,使用String类的substring()方法截取出生日期
- 判断男女:根据下标或者截取获得最后一位
跟上面方法一样
- 判断是否成年
方法一:
通过if-else 判断语句
首先年份是否够,如果今年18岁,那再考虑月份,如果当月生日,最后考虑天数
方法二:
通过调用Calendar日期类的方法判断
参考代码
package day530.homework;
import java.util.Calendar;
import java.util.Scanner;
/**
* 键盘输入身份证号,
* 判断此人是出生年月日,
* 此人男女(最后一位是奇数男,偶数女),
* 是否成年
*---------------------
* 要求身份证号18位,且全是数字
* 1) 键盘录入
* 2) 根据身份证号特性,截取其中年月日
* 3) 根据下标或者截取获得最后一位
* 4) 首先年份是否够,如果今年18岁,那再考虑月份,如果当月生日,最后考虑天数
*/
public class HomeworkOne {
public static void main(String[] args) {
System.out.println("请输入身份证号:");
/*
- int a = scanner.nextInt() 允许输入整型
- double d = scanner.nextDouble() 允许输入小数
- String s = scanner.nextLine() 允许输入字符串
*/
Scanner sc = new Scanner(System.in);
String idCard = sc.nextLine();
if (checkidCard(idCard)) {
String sex = getSex(idCard);
String brithDate = getBirthDate(idCard);
System.out.println("性别:"+sex+ "出生日期:"+