黑马程序员技术交流社区

标题: 分享一个如何获取身份证号的问题 [打印本页]

作者: lvshen9    时间: 2017-3-9 13:25
标题: 分享一个如何获取身份证号的问题
[Java] 纯文本查看 复制代码
package myexam.test24;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/*
*
*  问题:1. 模拟审核身份证的过程,按照以下要求实现相关代码(友情提示:不一定要用正则)(8分)
*    a.提示用户在控制台输入身份证号,用一个字符串对其进行保存(2分)
*    b.判断该身份证号位数是否是18位或者16位(2分)
*    c.判断该身份证号除最后一位外,是否都是数字(2分)
*    d.将“410124199008010231”身份证号中生日(19900801)获取出来并且打印到控制台上(2分)
*
*
*
*/
public class MyTest1 {

        public static void main(String[] args) {
                getId();
        }
       
        //写一个获取省份证好的方法
        public static void getId(){
                System.out.println("请输入省份证号码(15位or18位)");
                //创建一个键盘录入对象
                BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
                String id=null;
                while(true){
                        try {
                                 id=bufr.readLine();
                        } catch (IOException e) {
                                // TODO 自动生成的 catch 块
                                e.printStackTrace();
                        }
                        //用正则表达式判断身份证号(规则:16位或18位,末尾可以为子母)
                        Pattern idPattern=Pattern.compile("(\\d{15}[0-9a-zA-Z])|(\\d{17}[0-9a-zA-Z])");
                        //创建匹配器
                        Matcher idMacther=idPattern.matcher(id);
                        //判断是否匹配
                        if(idMacther.matches()){
                                System.out.println("您的出生年月日是:");
                                //将字符串转成字符数组
                                char[] ch=id.toCharArray();
                                for(int i=6;i<=13;i++){
                                        System.out.print(ch);
                                }
                        }else{
                                System.out.println("您输入的不是身份证号,请继续输入:");
                        }
                }
               
        }

}


作者: mrwalker    时间: 2017-3-10 09:07
可以看懂,但是自己写就很难完整写出来,是基础没打好还是练习太少了
作者: chen10041014    时间: 2017-3-14 15:35
你这答案装X的嫌疑很大
作者: zhao543    时间: 2017-3-14 19:32
自己写会遇到问题怎么办




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2