java 检查身份证合法性—java身份验证:代码示例

qianduangongchengshi

温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!

身份证号码是由18位数字(最后一位可能是X)组成的,其中前17位是身份证的主体部分,最后一位是校验码。校验码的计算方法是根据身份证号码的前17位数字,按照一定的算法进行计算得出的。我们可以通过对身份证号码进行一些校验规则的判断,来检查身份证号码的合法性。

示例代码如下所示:

public class IDCardUtils {

/**

* 检查身份证号码的合法性

* @param idCard 身份证号码

* @return 合法返回true,不合法返回false

*/

public static boolean checkIDCard(String idCard) {

// 判断身份证号码是否为空

if (idCard == null || idCard.trim().isEmpty()) {

return false;

}

// 判断身份证号码的长度是否为18位

if (idCard.length() != 18) {

return false;

}

// 判断身份证号码的前17位是否都是数字

String idCard17 = idCard.substring(0, 17);

if (!idCard17.matches("\\d+")) {

return false;

}

// 判断身份证号码的最后一位是否合法

char[] idCardChars = idCard.toCharArray();

int[] coefficient = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};

char[] checkCode = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};

int sum = 0;

for (int i = 0; i < 17; i++) {

sum += (idCardChars[i] - '0') * coefficient[i];

}

int remainder = sum % 11;

if (idCardChars[17] != checkCode[remainder]) {

return false;

}

// 身份证号码合法

return true;

}

}

在上面的示例代码中,我们首先判断身份证号码是否为空,然后判断身份证号码的长度是否为18位,接着判断身份证号码的前17位是否都是数字。我们通过一系列的计算和判断,来验证身份证号码的最后一位校验码是否合法。

通过调用`checkIDCard`方法,我们可以检查一个身份证号码的合法性,如果返回值为true,则表示身份证号码合法;如果返回值为false,则表示身份证号码不合法。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码