18位身份证验证(Java)加入身份证输入验证是否满足18位代码(修订稿)
package day20181016; /** * 身份证的验证 34052419800101001X * */ import java.util.Scanner; public class ZuoYe04 { public static void main(String[] args) { Scanner input=new Scanner(System.in); int[]numArray={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; System.out.println("请输入身份证号:"); String card=input.next(); while(true){ System.out.println("请再输入一次身份证号:"); card=input.next(); if(card.length()!=18){ System.out.println("您输入的身份证号有误,请重新输入"); System.out.println("是否继续(Y/N)"); String YN=input.next(); if(YN.equals("Y")){ System.out.println("欢迎继续使用!"); continue; } if(YN.equals("N")){ System.out.println("感谢您的使用!"); break; }else{ System.out.println("您的输入有误,请重新输入"); } }else{ break; } } int sum=0; for(int i=0;i<numArray.length;i++){ int cardNum=card.charAt(i)-'0'; sum+=cardNum*numArray[i]; } System.out.println("前17位系数相乘和为:"+sum); //身份证18位的字符数组 char[]codeArray={ '1','0','X','9','8','7','6','5','4','3','2'}; int index=sum%11;//数组的下标 //将计算出来的第18位字符与身份证的第18位对比 if(codeArray[index]==card.charAt(17)){ System.out.println(card+"身份证合法"); }else{ System.out.println(card+"身份证非法"); } } }
原创文章版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。转载文章详情请查看转载链接