java身份查验(字符串的使用技巧)

题目:

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

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

输入样例:

/****
3
330226196605054190
34080019810819327X
320111197112301539
sort1
sort2
e
******/ 

输出样例:

/***
1966-05-05
1971-12-30
1981-08-19
330226196605054190
320111197112301539
34080019810819327X
exit
******/ 
代码如下:(做了11道题,这道题花了百分之80的时间,必须发上来)

package yt052301;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class Main3 {

	public static void main(String[] args) {
		int n;
		Scanner in = new Scanner(System.in);
		n = in.nextInt();
		String[] strs = new String[100];
		String strs1;
		String[] strs2 = new String[100];
		String[] strs3 = new String[100];
		ArrayList<String> list = new ArrayList<String>();
		ArrayList<String> list1 = new ArrayList<String>();
		for (int i = 0; i < n; i++) {
			strs[i] = in.next();
		}
		for (int i = 0; i < n; i++) {
			strs2[i] = strs[i].substring(6, 10) + "-" + strs[i].substring(10, 12) + "-" + strs[i].substring(12, 14);
			list.add(strs2[i]);

		}
		Collections.sort(list);
				
		for (int i = 0; i < n; i++) {
			strs3[i] = strs[i].substring(6, 14);
			list1.add(strs3[i]);
		}
		Collections.sort(list1);
		String [] temp=list1.toArray(new String[list1.size()]);
      
		while (true) {

			strs1 = in.next();
			if (strs1.equals("sort1")) {

				for (String s : list) {
					System.out.println(s);
				}

				continue;
			}
			if (strs1.equals("sort2")) {
				for (int i = 0; i < n; i++) {
					for (int j = 0; j < n; j++) {
						if (strs[j].contains(temp[i])) {
							System.out.println(strs[j]);
							break;
						}
					}

				}
				
				continue;
			}
			else {
				System.out.println("exit");
				break;
			}

		}

	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值