使用Java数组编写验证身份证号码是否合法

1.常见数组命名:

      a.首先定义数组类型,数组名及长度:int[ ]array=new int[10];   //类型int类型,数组名:array ,长度为10

      b.在命名定义的同时可以直接赋值,也可从键盘获取输入:int [ ]array={1,3,13,12,6,8,4,3,5,4};也可写成:int[ ]array=new int[ ]{1,3,13,12,6,8,4,3,5,4};

       从键盘获取输入:首先需要导入Scanner包,同时使用for循环。详细代码如下:

import java.util.Scanner;
public class csdn {
	public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    int []array=new int[10];
    System.out.println("请输入数组");
    for(int i=0;i<array.length;i++){
    	array[i]=input.nextInt();
    }
    for(int i=0;i<array.length;i++){
    System.out.print(array[i]+" ");
    }
	}

}

2. 程序中代码分析:

//将string数组num转换成整型int数组num1;
int num1[ ]=Integer.parseInt(num[ ]);

//将char数组num转换成整型int数组num1;
 int num1[]=Integer.parseInt(String.valueOf(num[]));

//将字符串carry转换成Char数组num;
String carry="abcdefg";
 char[]num=carry.toCharArray();

//将数组num转换成字符串数组输出;
import java.util.Arrays;
System.out.print("你输入的身份证是:"+Arrays.toString(num));

//将int类型yushu转换成String类型yu;
String yu=String.valueOf(yushu);

//字符串进行比较用equals;

((name.equals("yes"))  //字符串name=yes

package Shuzu;
import java.util.Arrays;
import java.util.Scanner;
public class Yanzhengshenfenzheng {

	public static void main(String[] args) {
		int S=0;int sum=0;int yushu=0;
  //S=身份证17位数字和系数相乘 sum=相乘的结果相加  yushu=对11取余
  //获取用户输入的身份证号
	Scanner input=new Scanner(System.in);
	int num1[]=new int[17];
   //定义系数数组array
	int[]array={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
	char[]num=new char[18];
   char[]ary=new char[]{'1','0','X','9','8','7','6','5','4','3','2'};
   System.out.println("请输入18位身份证");
   String carry=input.nextLine();
   num=carry.toCharArray();
   System.out.println("你输入的身份证是:"+carry);
   //将身份证前17位拉出来组成int数组num1
   for(int k=0;k<17;k++){
	   num1[k]=Integer.parseInt(String.valueOf(num[k]));
   }
    
	//将身份证前十七位与对应系数相乘
   for(int j=0;j<17;j++){
	   S=num1[j]*array[j];
	   sum+=S;
   }
     yushu=sum%11;
     //与身份证第18位进行字符比较,如果相等则输入身份证正确
     if(ary[yushu]==num[17]){
    	  System.out.println("输入身份证正确");  
      }
      else{
    	  System.out.println("身份证号错误");
      }
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值