题意及思路

题意:给定一串身份证id,求这个人来自哪里和出生年月日。(其中,已经给出了八个地区的标识码)。

思路:一开始我想用C语言的字符串操作来做,然后我发现自己的C语言字符串方面是个薄弱环节,然后想着用Java来写,发现有个map接口(一种键值对集合),所以咱们可以将已给出地区的标识码及其地区名称存入到map中,然后进行字符串的操作即可。(Java字符串操作个人知道的比C语言多)

代码

import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Map<String,String> map = new HashMap<String,String>(); 
        map.put("33", "Zhejiang");
        map.put("11", "Beijing");
        map.put("71", "***");
        map.put("81", "Hong Kong");
        map.put("82", "Macao");
        map.put("54", "Tibet");
        map.put("21", "Liaoning");
        map.put("31", "Shanghai"); int n = sc.nextInt();
        sc.nextLine(); while(n--!=0){
            String s = sc.nextLine();
            String provinceNum = s.substring(0,2);
            String province = map.get(provinceNum);
            String year = s.substring(6,10);
            String month = s.substring(10,12);
            String day = s.substring(12,14);
            System.out.println("He/She is from "+province+",and his/her birthday is on "+month+","+day+","+year+" based on the table.");
        }
        sc.close();
        
    }
    
}