7-3 jmu-Java-02基本语法-03-身份证排序 (15 分)

  1. 输入n,然后连续输入n个身份证号。
  2. 然后根据输入的是sort1还是sort2,执行不同的功能。输入的不是sort1或sort2,则输出exit并退出。
    输入sort1,将每个身份证的年月日抽取出来,按年-月-日格式组装,然后对组装后的年-月-日升序输出。
    输入sort2,将所有身份证按照里面的年月日升序输出。

注意:处理输入的时候,全部使用ScannernextLine()方法,以免出错。

输入样例:

3
330226196605054190
34080019810819327X
320111197112301539
sort1
sort2
e

输出样例:

1966-05-05
1971-12-30
1981-08-19
330226196605054190
320111197112301539
34080019810819327X
exit
import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		scan.nextLine();
		String A[] = new String[n], C[] = new String[n];
		for (int i = 0; i < n; i++) {
			A[i] = scan.nextLine();
		}

		String B = scan.nextLine();

		for (; B.equals("sort1") || B.equals("sort2");) {
			if (B.equals("sort1")) {
				for (int j = 0; j < n; j++) {
					C[j] = A[j].substring(6, 10) + "-" + A[j].substring(10, 12) + "-" + A[j].substring(12, 14);
				}
				Arrays.sort(C);
				for (int j = 0; j < n; j++) {
					System.out.println(C[j].toString());
				}
			} else if (B.equals("sort2")) {
				for (int j = 0; j < n; j++) {
					C[j] = A[j].substring(6, 14);
				}
				Arrays.sort(C);
				for (int j = 0; j < n; j++)
					for (int k = 0; k < n; k++)
						if (A[k].contains(C[j]))
							System.out.println(A[k].toString());
			}
			System.out.println("exit");
			B = scan.nextLine();
		}

		scan.close();
	}

}

 

你可能感兴趣的:(Java)