用Java输入n,然后连续输入n个身份证号。 将每个身份证的年月日抽取出来,按年-月-日格式组装,然后对组装后的年-月-日升序输出。
时间: 2024-03-11 14:43:36 浏览: 92
好的,以下是Java代码实现:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
public static void main(String[] args) throws ParseException {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入身份证号个数:");
int n = scanner.nextInt();
scanner.nextLine(); // 读取n后需要使用nextLine()将回车符读取掉
List<String> idList = new ArrayList<>();
for (int i = 0; i < n; i++) {
System.out.print("请输入身份证号" + (i + 1) + ":");
String id = scanner.nextLine();
idList.add(id);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
List<Date> dateList = new ArrayList<>();
for (String id : idList) {
String birthday = id.substring(6, 14);
Date date = sdf.parse(birthday);
dateList.add(date);
}
Collections.sort(dateList);
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("身份证号按生日排序后为:");
for (Date date : dateList) {
System.out.println(outputFormat.format(date));
}
}
}
```
运行程序后,先输入身份证号个数n,然后输入n个身份证号。程序会按照输入的顺序逐个读取身份证号,将每个身份证的年月日抽取出来,按照年-月-日格式组装,然后对组装后的年-月-日升序输出。例如,输入身份证号个数为3,然后依次输入身份证号 `110101199003077978`、`110101197609122248`、`110101199102221254`,程序会输出:
```
身份证号按生日排序后为:
1976-09-12
1990-03-07
1991-02-22
```
阅读全文