7-3 jmu-Java-02基本语法-03-身份证排序 (15 分)计科其他班的题

版权声明:欢迎转载,但转载时请注明原文地址 https://blog.csdn.net/weixin_42110638/article/details/85115603

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

输入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

答案:

本来想写函数的,结果写的太乱了就懒得改了。。。然后还参考了别人的嘿嘿

排序要用Arrays.sort

不是很难,思路理清楚就好

package 身份证排序;
import java.util.*;
public class Main {

	/*
    static void sort1(String []s1)
    {
    	int i;
    	//StringBuilder s2 = new StringBuilder(s1);
    	String A[] = new String[s1.length];
    	String []C = new String[s1.length];
    	for(i = 0;i < s1.length;i++)
    	{
    		if(i>=6&&i<=13)
    			C[i] = A[i];
    	}
    	for(i = 0;i < s1.length+2;i++)
    	{
    		if(i==4||i==7)
    			System.out.print("-");
    		System.out.println(s1[i]);
    	}
    	System.out.println();
    }
    static void sort2(String []s1)
    {
    	int i;
    	for(i = 0;i < s1.length;i++)
    	{
    		System.out.println(s1[i]);
    	}
    	System.out.println();
    }
    */

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		sc.nextLine();
		String []A = new String[n];
		String []C = new String[n];
		for(int i = 0;i < n;i++)
		{
			A[i] = sc.nextLine();
		}
		String B = sc.nextLine();
		for (; B.equals("sort1") || B.equals("sort2");) 
		{
			//System.out.println("0");
			if(B.equals("sort1"))
			{
				for(int i = 0;i < n;i++)
					C[i] = A[i].substring(6, 10) + "-" + A[i].substring(10, 12)+ "-" + A[i].substring(12, 14);
				Arrays.sort(C);
				for(int i = 0;i < n;i++)
					System.out.println(C[i].toString());
			}
			else if(B.equals("sort2"))
			{
				for(int i = 0;i < n;i++)
					C[i] = A[i].substring(6, 14);
				Arrays.sort(C);
				for(int i = 0;i < n;i++)
					for(int j = 0;j < n;j++)
						if(A[j].contains(C[i]))
					        System.out.println(A[j].toString());
			}
			B = sc.nextLine();
		}   
			System.out.println("exit");
			sc.close();
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_42110638/article/details/85115603