- 输入n,然后连续输入n个身份证号。
-
然后根据输入的是
sort1
还是
sort2
,执行不同的功能。输入的不是sort1或sort2,则输出
exit
并退出。
输入
sort1
,将每个身份证的年月日抽取出来,按
年-月-日
格式组装,然后对组装后的年-月-日升序输出。
输入
sort2
,将所有身份证按照里面的年月日升序输出。
注意:
处理输入的时候,全部使用
Scanner
的
nextLine()
方法,以免出错。
输入样例:
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");
}
}
}
}
版权声明:本文为fangjial原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。