思路:身份证号是由15为的数字或者17位数字+一位数字/x/X组成的,正则表达式的写法就是匹配一个字符串是不是由15位数字组成或者是17位数字+一位数字/x/X组成的

正则表达式的写法:^(\d{15}|\d17[\dxX])$

输出的格式:yyyy-MM-dd

声明三个字符串变量分别用来存储yyyy、MM、dd,身份证的第7位到第14位是出生的年月日,但在字符串中的下标是从0开始的,所以就需要从下标为6的地方开始取,

年:【6,10)

月:【10,12)

日:【12,14)

最后返回自己想要的格式

    /**
     * 省份证的正则表达式^(\d{15}|\d{17}[\dx])$
     * @param id    省份证号
     * @return    生日(yyyy-MM-dd)
     */
    public String extractYearMonthDayOfIdCard(String id) {
        String year = null;
        String month = null;
        String day = null;
         //正则匹配身份证号是否是正确的,15位或者17位数字+数字/x/X
        if (id.matches("^\\d{15}|\\d{17}[\\dxX]$")) {
            year = id.substring(6, 10);
            month = id.substring(10,12);
            day = id.substring(12,14);
        }else {
            System.out.println("身份证号码不匹配!");
            return null;
        }
        return year + "-" + month + "-" + day;
    }

 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
  • 2022-02-04
  • 2022-12-23
  • 2021-06-01
  • 2022-02-09
猜你喜欢
  • 2022-02-09
  • 2022-02-28
  • 2021-12-10
  • 2021-09-27
  • 2021-12-04
  • 2021-12-04
相关资源
相似解决方案