7-3 jmu-Java-02基本语法-03-身份证排序 (4 分)

  1. 输入n,然后连续输入n个身份证号。
  2. 然后根据输入的是sort1还是sort2,执行不同的功能。输入的不是sort1或sort2,则输出exit并退出。
    输入sort1,将每个身份证的年月日抽取出来,按年-月-日格式组装,然后对组装后的年-月-日升序输出。
    输入sort2,将所有身份证按照里面的年月日升序输出。

注意:处理输入的时候,全部使用ScannernextLine()方法,以免出错。

输入样例:

3
330226196605054190
34080019810819327X
320111197112301539
sort1
sort2
e

输出样例:

1966-05-05
1971-12-30
1981-08-19
330226196605054190
320111197112301539
34080019810819327X
exit
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int count=Integer.valueOf(sc.nextLine());
        String s[]=new String[count];
        for (int i=0;i<count;i++){
            s[i]=sc.nextLine();
        }
        String temp;
        SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd");
        while (true){
            String tem=sc.nextLine();
            if (tem.equals("sort1")){
                Date date[]=new Date[count];
                for (int j=0;j<count;j++){
                    for (int i=0;i<count-j-1;i++){
                        String bir1=s[i].substring(6,14);
                        String bir2=s[i+1].substring(6,14);
                        Date d1;
                        Date d2;
                        try {
                            d1 = df.parse(bir1);
                            d2 =df.parse(bir2);
                            if (d1.getTime()>d2.getTime()){
                                temp=s[i];
                                s[i]=s[i+1];
                                s[i+1]=temp;
                            }
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                    }
                }
                for (int i=0;i<count;i++){
                    String bir=s[i];
                    System.out.println(bir.substring(6,10)+"-"+bir.substring(10,12)+"-"+bir.substring(12,14));
                }
            }else if (tem.equals("sort2")){
                Date date[]=new Date[count];
                for (int j=0;j<count;j++){
                    for (int i=0;i<count-j-1;i++){
                        String bir1=s[i].substring(6,14);
                        String bir2=s[i+1].substring(6,14);
                        Date d1;
                        Date d2;
                        try {
                            d1 = df.parse(bir1);
                            d2 =df.parse(bir2);
                            if (d1.getTime()>d2.getTime()){
                                temp=s[i];
                                s[i]=s[i+1];
                                s[i+1]=temp;
                            }
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                    }
                }
                for (int i=0;i<count;i++){
                    System.out.println(s[i]);
                }

            }else {
                System.out.println("exit");
            }
        }
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值