package com.gc.action;
public class Test {
public static void main(String[] args) {
String str ="230231199011024";
System.out.println(getValidIdCard(str));
}
public static boolean getValidIdCard(String card){
if(card.length() != 18 &&card.length() != 15)
{
return false;
}
//身份证15位的做校验
if(card.length() == 15){
for (int i = card.length();--i>=0;){
if (!Character.isDigit(card.charAt(i))){
return false;
}
}
}
//身份证18位的做校验
if(card.length()==18){
char[] l_id = card.toCharArray();
int l_jyw = 0;
int[] wi = new int[]{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
char[] ai= new char[]{'1','0','X','9','8','7','6','5','4','3','2'};
for(int i =0 ; i < 17; i++)
{
if(l_id[i] < '0' || l_id[i] > '9')
{
return false;
}
l_jyw += (l_id[i] -'0')*wi[i];
}
l_jyw = l_jyw % 11;
if(ai[l_jyw] != l_id[17])
{
return false;
}
}
return true;
}
}
校验身份证是否正确
猜你喜欢
转载自blog.csdn.net/yingmengxuepingbao/article/details/83305283
今日推荐
周排行