1.输入n,然后连续输入n个身份证号。
2.然后根据输入的是sort1还是sort2,执行不同的功能。输入的不是sort1或sort2,则输出exit并退出。
输入sort1,将每个身份证的年月日抽取出来,按年-月-日格式组装,然后对组装后的年-月-日升序输出。
输入sort2,将所有身份证按照里面的年月日升序输出。
注意:处理输入的时候,全部使用Scanner的nextLine()方法,以免出错。
输入样例:
6
410425198309308225
320203197206115011
431227196108033146
330226196605054190
34080019810819327X
320111197112301539
sort1
sort2
e
输出样例:
1961-08-03
1966-05-05
1971-12-30
1972-06-11
1981-08-19
1983-09-30
431227196108033146
330226196605054190
320111197112301539
320203197206115011
34080019810819327X
410425198309308225
exit
参考代码:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
int n;
n=sc.nextInt();
String s[]=new String[n];
String birth[]=new String[n];
String str;
for(int i=0;i<n;i++) {
s[i]=sc.next();
}
while(true) {
str=sc.next();
if(str.equals("e")) {
System.out.println("exit");
break;
}else if(str.equals("sort1")) {
for(int i=0;i<n;i++) {
birth[i]=s[i].substring(6,10 )+'-'+ s[i].substring(10, 12)+'-'+s[i].substring(12, 14);
}
Arrays.sort(birth);
for(int i=0;i<n;i++) {
System.out.println(birth[i]);
}
}else if(str.equals("sort2")) {
for(int i=0;i<n;i++) {
birth[i]=s[i].substring(6,10 )+ s[i].substring(10, 12)+s[i].substring(12, 14);
}
Arrays.sort(birth);
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++){
if(s[j].contains(birth[i])) {
System.out.println(s[j]);
break;
}
}
}
}
}
}
}
版权声明:本文为rosy720原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。