java算法——通過身份證號獲取出生的年月日


思路:身份證號是由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;
    }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM