OJ刷题——日期排序

该博客讨论了一个编程题目,要求对日期(格式:MM/DD/YYYY)进行排序。博主分享了样例输入和期望输出,并提供了思路分析,即通过创建自定义日期类并重写compareTo方法来实现排序。博主在本地遇到一个未解决的问题,即scan.hasNextLine()在输入完成后无法正常退出循环,但代码已在在线判题系统上成功通过。
摘要由CSDN通过智能技术生成

题目描述
有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。

样例输入
15/12/1999
10/21/2003
10/22/2003
02/12/2004
11/30/2005
12/31/2005

样例输出
15/12/1999
10/21/2003
10/22/2003
02/12/2004
11/30/2005
12/31/2005
思路分析把日期看做对象,在日期类中重写compareTo方法,使得对象可以比较大小,然后读入数据创建对象加到ArrayList中进行排序输出即可。(遇到一个问题,在我的电脑上scan.hasNextLine()输入完了也不会退出循环,在我电脑上运行失败,但是提交OJ是通过的,我没有想通。)
附上代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main{
   

    public static void main(String[] args) {
   
        // TODO Auto-generated method stub
        ArrayList<DDate> al = new ArrayList<DDate>();
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextLine()) {
   
            String ss = scan.nextLine();
            String str[] = ss.split("/");
            String month = str[0];
            String day = str[1];
            String year = str[2];
            al.add(new DDate(year, month, day));
        }
        Collections.sort(al);// 排序
        for (DDate date : al) {
   
            System.out.<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值