生活随笔
收集整理的這篇文章主要介紹了
校验18位身份证号码的正确性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
public static void main(String[] args) {String str =
"34052419800101001X";print(IDCardNoVerify(str));}
public static boolean IDCardNoVerify(String IDCardNo) {
if (!IDCardNoFormatVerify(IDCardNo)) {
return false;}
int[] coef = {
7,
9,
10,
5,
8,
4,
2,
1,
6,
3,
7,
9,
10,
5,
8,
4,
2 };
int sum =
0;
for (
int i =
0; i <
17; i++) {
sum += Integer.parseInt(IDCardNo.substring(i, i +
1)) * coef[i];}
int remainder =
sum %
11;Integer lastNum = ((
11 - remainder) +
1) %
11;String last =
null;
if (lastNum ==
10) {last =
"X";}
else {last = lastNum.toString();}
if (IDCardNo.endsWith(last)) {
return true;}
else {
return false;}}
public static boolean IDCardNoFormatVerify(String IDCardNo) {String regexp =
"^[0-9]{17}[0-9xX]$";Pattern pattern = Pattern.compile(regexp);Matcher matcher = pattern.matcher(IDCardNo);
return matcher.matches();}`
總結
以上是生活随笔為你收集整理的校验18位身份证号码的正确性的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。