You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何从日期字符串提取整数变量用于生日验证?

问题描述

需要编写Java代码实现生日验证功能,从用户输入的日期字符串(如"12/6/1993")中提取出整数变量DD=12、MM=6、YYYY=1993,用于后续的条件判断计算。已有的基础输入代码如下:

package practice;

import java.util.Scanner;

public class Practice {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("Enter a date as DD/MM/YYYY: ");

        String date = scanner.next();

        System.out.println(date);

       }
    }

已知需要用到Parse相关方法,但不知道如何将字符串中的数字拆分提取为独立变量。


方法1:字符串拆分直接提取(简单场景)

通过split("/")分割字符串,再将分割后的片段转为整数,适合不需要严格校验格式的场景:

package practice;

import java.util.Scanner;

public class Practice {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("Enter a date as DD/MM/YYYY: ");
        String date = scanner.next();

        // 用"/"分割字符串
        String[] dateParts = date.split("/");
        
        // 转换为整数变量
        int dd = Integer.parseInt(dateParts[0]);
        int mm = Integer.parseInt(dateParts[1]);
        int yyyy = Integer.parseInt(dateParts[2]);

        // 测试输出提取结果
        System.out.println("DD: " + dd + ", MM: " + mm + ", YYYY: " + yyyy);
        
        // 此处添加你的生日验证逻辑
    }
}

注意:该方法无格式校验,若用户输入不符合DD/MM/YYYY规范,会抛出异常。

方法2:Java日期API解析(带合法性校验)

如果需要严格校验日期格式和有效性(比如拒绝30/02/2024这类无效日期),推荐使用java.time包的API,这也是你提到的Parse方法的标准用法:

package practice;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;

public class Practice {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("Enter a date as DD/MM/YYYY: ");
        String date = scanner.next();

        // 定义日期格式匹配规则
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        
        try {
            // 解析字符串为日期对象
            LocalDate birthDate = LocalDate.parse(date, formatter);
            
            // 提取年、月、日整数
            int dd = birthDate.getDayOfMonth();
            int mm = birthDate.getMonthValue();
            int yyyy = birthDate.getYear();

            // 测试输出提取结果
            System.out.println("DD: " + dd + ", MM: " + mm + ", YYYY: " + yyyy);
            
            // 此处添加你的生日验证逻辑
        } catch (Exception e) {
            System.out.println("输入的日期格式不正确或日期无效,请输入DD/MM/YYYY格式的有效日期");
        }
    }
}

内容的提问来源于stack exchange,提问作者Daniel Mases

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 15:26:18