LanQiaoTestCodes/身份证号合理性验证.java

35 lines
1003 B
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package Course_Codes;
import java.util.Scanner;
//身份证号合理性验证
public class 身份证号合理性验证 {
public static void main(String[] args) {
String idCard="";//存储身份证尾号可能出现X因此用String
//身份证各数字权值7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
int [] w= {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};
//权值对11取余的值
String [] last= {"1","0","X","9","8","7","6","5","4","3","2"};
System.out.println("Please input your ID:");
Scanner sc=new Scanner(System.in);
idCard =sc.nextLine();
//截取身份证号前17位
String id_17=idCard.substring(0,17);
int sum=0;
for(int i=0;i<id_17.length();i++) {
//将String类型的身份证号转化为整型
int n=Integer.parseInt(id_17.substring(i,i+1));//法2:charAt(i-'0');
sum=sum+n*w[i];
}
System.out.printf("sum=%d,sum=%%11=%d\n",sum,sum%11);
if(idCard.substring(17,18).equals(last[sum%11]))
System.out.println("Yes");
else
System.out.print("No");
}
}