java對台灣同胞身份證號碼驗證

2021-09-21 18:18:08 字數 1786 閱讀 5749

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...