📄 wzk.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 + -