package com.yt.eos.common.enumclass;
import org.apache.commons.lang3.stringutils;
/** * 台灣同胞身份證號碼驗證
* @author tyg
* @date 2023年5月8日下午3:51:11
*/public enum taiwanidcardenum
public string getcode()
public int getnumber()
/*** 根據code獲取對應的區域列舉
* @param code
* @return
* @return taiwancodeenum
* @author tyg
* @date 2023年5月8日下午3:53:05
*/public static taiwanidcardenum getenumbycode(string code)
}} return null; }
/*** 驗證是否台灣同胞身份證
* @param idcard
* @return
* @return boolean
* false:表示身份證號碼不合法
* true :表示身份證號碼合法
* @author tyg
* @date 2023年5月8日下午3:48:33
*/public static boolean istaiwanidcard(string idcard)
try
// 第三位~第九位:順序碼
// 十位數
int ten = tw.getnumber() / 10 % 10;
// 個位數
int one = tw.getnumber() % 10;
int totalnumber = ten; // 區域**的十位數
totalnumber += one * 9; // 區域**的個位數 * 9
totalnumber += *** * 8; // 性別 * 8
// 以下都是身份證的第3位 ~ 第9位
int number = 7;
for (int i = 2; i < 9; i++)
totalnumber += integer.parseint(idcard.substring(i, i + 1)) * number;
number --;
}system.out.println("第三位~第九位計算和為:" + totalnumber);
string totalnumberstr = totalnumber+"";
// 第十位:用 10 減去計算和的各位數
int lastnumber = 10 - integer.parseint((totalnumberstr).substring(totalnumberstr.length() - 1));
lastnumber = lastnumber == 10 ? 0 : lastnumber;
if (lastnumber == integer.parseint(idcard.substring(9)))
} catch (numberformatexception e)
} return false; }
public static void main(string args)
}
注:第三位~第九位不要擷取出來後轉為數字,因為前面可能是0! 身份證號碼
每乙個人自出生後都會有乙個身份證號碼。根據我國有關部門規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為 六位數字位址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。居民身份證是國家法定的證明公民個人身份的有效證件。例如 對於身份證號碼330719...
java驗證身份證號碼
介紹 yyyy mm dd 375 0 十八位 yy mm dd 75 0 十五位 地區 1 9 d 年的前兩位 18 19 23 d 1800 2399 年的後兩位 d 月份 0 1 9 10 11 12 天數 0 2 1 9 10 20 30 31 閏年不能禁止29 三位順序碼 d 兩位順序碼 ...
Java 身份證號碼驗證
之前的身份證號碼只是做了一些簡單的數字 長度,生日等驗證 最近碰到乙個框架的身份證號碼驗證有些奇怪,在網上搜了一通,終於找到了規則,所以在這裡記錄一下,一遍以後再用,也分享給廣大開發者.驗證身份證號碼 param snumber 身份證號碼 public static boolean check s...