一、身份證號碼的含義
身份證號碼是中國公民個人的唯一身份標識,由18位或15位數字及最後一位數字或字母組成。
身份證號碼的前6位表示戶籍所在地行政區劃代碼,第7至14位表示出生日期,第15至17位為順序碼,第18位為校驗碼。
二、身份證號碼15位和18位的區別
身份證號碼的15位和18位主要區別在於:前者沒有校驗碼,後者有校驗碼。
校驗碼是判斷身份證號碼是否真實的重要依據。18位身份證號碼的最後一位是校驗碼,其計算方法採用了一定的演算法。
三、使用場景的差異
在實際使用中,身份證號碼的15位和18位也有不同的場景應用。
1、18位身份證號碼應用場景
/** * 驗證18位身份證號碼是否合法 * @param idCard 身份證號碼 * @return 是否合法 */ public static boolean verifyIdCard18(String idCard) { if (idCard == null || idCard.length() != 18) { return false; } // TODO: 校驗演算法 return true; }
在驗證身份證號碼的合法性時,通常使用的是18位身份證號碼。
2、15位身份證號碼應用場景
/** * 將身份證號碼從15位轉換為18位 * @param idCard 身份證號碼 * @return 轉換後的身份證號碼 */ public static String transIdCard15To18(String idCard) { if (idCard == null || idCard.length() != 15) { return null; } // TODO: 轉換演算法 return ""; }
在一些歷史遺留系統中,可能仍然使用15位身份證號碼。需要將15位身份證號碼轉換為18位進行處理。
四、如何獲取身份證號碼中的信息
通過身份證號碼可以獲取個人的一些信息,如出生日期、性別等。通過以下方法,可以從身份證號碼中提取這些信息。
1、提取出生日期
/** * 獲取身份證號碼中的出生日期 * @param idCard 身份證號碼 * @return 出生日期(格式為:yyyy-MM-dd) */ public static String getBirthdayFromIdCard(String idCard) { if (idCard == null || (idCard.length() != 15 && idCard.length() != 18)) { return null; } String birthday; if (idCard.length() == 15) { // 15位身份證號碼,出生日期格式為6位 birthday = "19" + idCard.substring(6, 8) + "-" + idCard.substring(8, 10) + "-" + idCard.substring(10, 12); } else { // 18位身份證號碼,出生日期格式為8位 birthday = idCard.substring(6, 10) + "-" + idCard.substring(10, 12) + "-" + idCard.substring(12, 14); } return birthday; }
2、提取性別信息
/** * 獲取身份證號碼中的性別 * @param idCard 身份證號碼 * @return 性別(1為男性,2為女性,0為未知) */ public static int getGenderFromIdCard(String idCard) { if (idCard == null || (idCard.length() != 15 && idCard.length() != 18)) { return 0; } int gender; if (idCard.length() == 15) { // 15位身份證號碼,第15位為性別;奇數為男,偶數為女 int genderBit = Integer.parseInt(idCard.substring(14, 15)); gender = genderBit % 2 == 1 ? 1 : 2; } else { // 18位身份證號碼,第17位為性別;奇數為男,偶數為女 int genderBit = Integer.parseInt(idCard.substring(16, 17)); gender = genderBit % 2 == 1 ? 1 : 2; } return gender; }
五、總結
身份證號碼是中國公民個人的唯一身份標識,分為15位和18位。其中,18位身份證號碼包含校驗碼,通過校驗演算法可以驗證其合法性。身份證號碼的長度和校驗碼的存在,決定了不同的應用場景。在實際使用中,我們可以通過身份證號碼獲取個人的出生日期、性別等信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/271011.html