java身份证验证是否有效(控制台输出)

package practice;

import java.util.Scanner;

public class Demo1 {

 public static void main(String[] args) {
  compare();//封装
 }

 public static void compare() {
  Scanner scanner = new Scanner(System.in);
  System.out.println("请输入您的身份证号码:");
  String s = scanner.nextLine();//获取字符串
  //System.out.println(s);
  int n,sum = 0;
  int[] ary = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
  char[] ch={'1','0','x','9','8','7','6','5','4','3','2'};
  for(int i=0; i<s.length()-1; i++){
   sum += (s.charAt(i)-'0')*ary[i];
   //System.out.println("sum单个="+(s.charAt(i)-'0')+",i是"+i+"sum="+sum);
  }
  //System.out.println(sum);
  n = sum % 11;
  //System.out.println("n="+n);
  char l = ch[n];
  //System.out.println(l);
  if((l-'0') == (s.charAt(s.length()-1)-'0')){
   System.out.println("身份证有效!");
  }else{
   System.out.println("身份证无效!");
  }
 }

}



 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值