/**
* 身份证号码分析
* @author Administrator
*
*/
public class IdCard {
public static void main(String[] args) {
String idcard = "61011519950221476"; //
if(idcard.length() != 17) {
System.out.println("输入无效,请输入身份证号码的前17位");
return;
}
//计算最后一位
int[] wi = {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++) {
int num = idcard.charAt(i) - '0'; //取出对应位置的数字
sum += num * wi[i];
}
int mod = sum % 11;
String[] lasts = {"1","0","X","9","8","7","6","5","4","3","2"};
//查表法把要比较的数字放到数组中
String last = lasts[mod];
System.out.println("最后一位:" + last);
System.out.println("性别:" + ((idcard.charAt(16) - '0') % 2 == 1 ? "男" : "女"));
System.out.println("出生日期:" + idcard.substring(6,10) + "年" + idcard.substring(10,12) + "月" + idcard.substring(12, 14) + "日");
}
}
根据身份证前17位分析(java)
最新推荐文章于 2023-11-07 17:06:07 发布