题目:
5-7 jmu-Java-02基本语法-03-身份证排序 (20分)
- 首先根据输入的n
- 输入n个身份证号。
- 据输入的是sort1还是sort2,执行不同的功能。输入的不是sort1或sort2,则输出exit并退出。
输入sort1,将每个身份证的年月日抽取出来,按年-月-日格式组装,然后对组装后的年-月-日升序输出。
输入sort2,将所有身份证按照里面的年月日升序输出。
输入样例:
/****
3
330226196605054190
34080019810819327X
320111197112301539
sort1
sort2
e
******/
输出样例:
/***
1966-05-05
1971-12-30
1981-08-19
330226196605054190
320111197112301539
34080019810819327X
exit
******/
package yt052301;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main3 {
public static void main(String[] args) {
int n;
Scanner in = new Scanner(System.in);
n = in.nextInt();
String[] strs = new String[100];
String strs1;
String[] strs2 = new String[100];
String[] strs3 = new String[100];
ArrayList<String> list = new ArrayList<String>();
ArrayList<String> list1 = new ArrayList<String>();
for (int i = 0; i < n; i++) {
strs[i] = in.next();
}
for (int i = 0; i < n; i++) {
strs2[i] = strs[i].substring(6, 10) + "-" + strs[i].substring(10, 12) + "-" + strs[i].substring(12, 14);
list.add(strs2[i]);
}
Collections.sort(list);
for (int i = 0; i < n; i++) {
strs3[i] = strs[i].substring(6, 14);
list1.add(strs3[i]);
}
Collections.sort(list1);
String [] temp=list1.toArray(new String[list1.size()]);
while (true) {
strs1 = in.next();
if (strs1.equals("sort1")) {
for (String s : list) {
System.out.println(s);
}
continue;
}
if (strs1.equals("sort2")) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (strs[j].contains(temp[i])) {
System.out.println(strs[j]);
break;
}
}
}
continue;
}
else {
System.out.println("exit");
break;
}
}
}
}