Java 身份证排序算法:按日期升序排列
import java.util.*;
public class IDSort { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = Integer.parseInt(scanner.nextLine()); String[] ids = new String[n]; for (int i = 0; i < n; i++) { ids[i] = scanner.nextLine(); }
String command;
while (!(command = scanner.nextLine()).equals("e")) {
if (command.equals("sort1")) {
sort1(ids);
} else if (command.equals("sort2")) {
sort2(ids);
} else {
System.out.println("exit");
return;
}
}
}
public static void sort1(String[] ids) {
List<String> dates = new ArrayList<>();
for (String id : ids) {
String date = id.substring(6, 14);
String formattedDate = date.substring(0, 4) + '-' + date.substring(4, 6) + '-' + date.substring(6);
dates.add(formattedDate);
}
Collections.sort(dates);
for (String date : dates) {
System.out.println(date);
}
}
public static void sort2(String[] ids) {
Arrays.sort(ids, new Comparator<String>() {
@Override
public int compare(String id1, String id2) {
String date1 = id1.substring(6, 14);
String date2 = id2.substring(6, 14);
return date1.compareTo(date2);
}
});
for (String id : ids) {
System.out.println(id);
}
}
}
原文地址: https://www.cveoy.top/t/topic/bywL 著作权归作者所有。请勿转载和采集!