⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wzk.java

📁 这个程序可以用于验证身份证的真假, 以及新老版本身份证的号码的转换问题 供大家参考,直接可以查询男/女和哪个省份
💻 JAVA
字号:
//该程序只是能判断到哪个省
import java.awt.*;
import javax.swing.JOptionPane;
import java.io.*;
import java.lang.*;

class Man
{
	static int flag,sheng=1;
	static int state,sex;
	static String s1,s2,s3,s4,xin;
	static String dd[]={"11","12","13","14","15","21","22","23","31","32","33",
	"34","35","36","37","41","42","43","44","45","46","50","51","52",
	"53","54","61","62","63","64","65","71","81","82"};
	static String d[]={"北京市","天津市","河北省","山西省","内蒙古自治区","辽宁省","吉林省",
	"黑龙江省","上海市","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省",
	"湖北省","湖南省","广东省","广西壮族自治区","海南省","重庆市","四川省","贵州省","云南省",
	"西藏自治区","陕西省","甘肃省","青海省","宁夏回族自治区","新疆维吾尔自治区","台湾省",
	"香港特别行政区","澳门特别行政区","!!!!!前两位有误码请检查!!!!!"};
	
 ////////////////////检验真假//////////////////////////
   public int panduan(String s)
	{
     if(s.length()==15||s.length()==18) 
	   { 
	      flag=1;
	   	  int ai,bi,a=0,b,c;     
	      int a1,a2;
	      char[] sss={'1','0','x','9','8','7','6','5','4','3','2'};
	      int wi[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
	      char ch,sh;
          if(s.length()==18)
           {  
             sh=s.charAt(17);
             bi=(int)(sh);
        	 for(int i=0;i<17;i++)
		     { 
		       ch=s.charAt(i);
		       ai=(int)(ch)-48;
		       a=a+ai*wi[i];
	             }
		       c=a%11;
		       for(int i=0;i<11;i++)
                {flag=0;
                 if(s.charAt(17)==sss[c])
                 {flag=1;break;}
                }
                
             if((s.charAt(10)>'1')||(s.charAt(12)>'3')||((s.charAt(10)=='1')&&(s.charAt(11)>'2')))
              {flag=0;}
           }
           
             if(s.length()==15)
              { if((s.charAt(8)>'1')||(s.charAt(10)>'3')||((s.charAt(8)=='1')&&(s.charAt(9)>'2')))
               flag=0;}
            
		}
		else flag=0;    
		return flag;
	}
	
 //////////////扩展成18位的身份证号码//////////////
    public static String xin18(String s)
    {   
    	String ss="19";
        String b;
    	int ai,bi,x,a=0,c,d;
	    int a1,a2;
	    char[] sss={'1','0','x','9','8','7','6','5','4','3','2'};
	    int wi[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
    	char sh,ch;///////440524800101001(检测用)
    	StringBuffer sb=new StringBuffer(18);
    	sb.append(s);
        sb.insert(6,ss);
    
       for(int i=0;i<17;i++)
		 { ch=sb.charAt(i);
		   ai=(int)(ch)-48;
		   c=ai*wi[i];
		   a=a+c;
		 }
		   d=a%11;
	       sb.append(sss[d]);
		   String xin=sb.toString();
    	   return xin;
    }

/////////获得身份证信息//////<<<只包括省份和性别>>>////////
public void information(String s)//注意这个函数里面变量的处理情况//
    {   char ch;
    	if(s.length()==15)
    	 { 
    	 	state=0;
    	 	s1=s.substring(0,2);
    	 	s2=s.substring(6,12);
    	 	for(int k=0;k<34;k++)
             {  sheng=0;
          	   if(s1.equals(dd[k]))
          	     {s3=d[k];sheng=1;break;}
          	 }
          	ch=s.charAt(14);
          	sex=(int)ch;
          	if(sex%2==1)
          	sex=1;
          	else 
          	sex=0;
          }  
       else if(s.length()==18)
    	 {
    	 	state=1;
    	 	s1=s.substring(0,2);
    	 	s2=s.substring(6,14);
    	 	for(int k=0;k<34;k++)
             {    sheng=0;
          	   if(s1.equals(dd[k]))
          	    {s3=d[k];sheng=1;break;}
          	 }
          	 ch=s.charAt(16);
          	 sex=(int)ch;
          	 if(sex%2==1)
          	 sex=1;
          	 else 
          	 sex=0;
              
    	 }
    }

 }   

public class WZK extends Man
{   
	public static void main(String args[])
     { String s11,firstnum,secondnum,thirdnum,forthnum;
       int num1,num2,num3,num4;
       JOptionPane.showMessageDialog(null,"                    欢  迎  使  用\n            身  份  证  查  询  系  统","Result",JOptionPane.PLAIN_MESSAGE); 
       s11=JOptionPane.showInputDialog("请输入身份证号码:");
        WZK ff=new WZK();
        
        ff.panduan(s11);
    if(flag==0)
        {
        	JOptionPane.showMessageDialog(null,
            "       这个身份证号码不存在,请检查!!!","Result",JOptionPane.PLAIN_MESSAGE);
        }
     else
     {if(s11.length()==18) 
        {
          ff.information(s11);
          firstnum=s3;
         secondnum=s2;
         if(sex==1) forthnum="男";
         else forthnum="女";
         if(sheng==0)
         JOptionPane.showMessageDialog(null,"该号码前两位有误,请检查","Result",JOptionPane.PLAIN_MESSAGE);
         else JOptionPane.showMessageDialog(null,"该身份证是新版身份证\n他的出生年月日是:"+secondnum+"\n他的性别是:"+forthnum+"\n他所在的省份是:"+firstnum,"Result",JOptionPane.PLAIN_MESSAGE);
         }
      else if(s11.length()==15) 
        {
          ff.information(s11);
          firstnum=s3;
          secondnum=s2;
        thirdnum=xin18(s11);
        if(sex==1) forthnum="男";
        else forthnum="女";
         if(sheng==0)
         JOptionPane.showMessageDialog(null,"该号码前两位有误,请检查","Result",JOptionPane.PLAIN_MESSAGE);
         else JOptionPane.showMessageDialog(null,"该身份证是旧版身份证\n他的出生年月日是:"+secondnum+"\n他的性别是:"+forthnum+"\n他所在的省份是:"+firstnum+"\n该号码对应的新版身份证号码是:"+thirdnum,"Result",JOptionPane.PLAIN_MESSAGE);
         }	
     }
        System.out.println("任务已经完成,请返回!");
        System.exit(0);
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -