版权声明:欢迎转载,但转载时请注明原文地址 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();
}
}