重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
18为身份证号码的第17位数字表示性别:奇数表示男性,偶数表示女性
目前创新互联已为上1000家的企业提供了网站建设、域名、雅安服务器托管、网站托管、企业网站设计、皋兰网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
所有代码中,只要截取出第17位的数字出来就可以判断性别,如:
String sex;
// 判断性别
if (Integer.parseInt(CardCode.substring(16).substring(0, 1)) % 2 == 0) {
sex = "女";
} else {
sex = "男";
}
如果只要判断有非法的字符(除0-9和Xx外)可用正则表达式publicstaticvoidmain(String[]args){//TODOcodeapplicationlogichereStrings="2142213weqrwe32";StringregEx="[^0-9Xx]";Patternpat=Pattern.compile(regEx);Matchermat=pat.matcher(s);booleanrs=mat.find();if(rs){System.out.print("有非法字符");}另外,校验身份证号码有专门程序的,可直接校验身份证号是否正确,在自己在网上找下
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入十八位身份证号码!");
String id=input.next();
if(id.length()!=18){
System.out.println("身份证号码长度不对!");
}
String top=id.substring(0, 17);
String sishu="7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2";
String[] xishu=sishu.split(",");
int sum=0;
for (int i = 0; i top.length(); i++) {
int a=Integer.parseInt(top.charAt(i)+"");
int b=Integer.parseInt(xishu[i]);
sum+=a*b;
}
int xiaoyanjisuan=sum%11;
int xiaoyan=Integer.parseInt(id.substring(17, 18));
if(xiaoyanjisuan==xiaoyan){
System.out.println("身份证号码检测正确!");
}else{
System.out.println("身份证号码检测错误!");
return;
}
String dizhi=id.substring(0,6);
String nian=id.substring(6,10);
String yue=id.substring(10, 12);
String ri=id.substring(12,14);
int sex=Integer.parseInt(id.substring(16,17));
System.out.println("地址码为:"+dizhi);
System.out.println("生日为:"+nian+"年"+yue+"月"+ri+"日");
if(sex%2==0){
System.out.println("性别为:女");
}else{
System.out.println("性别为:男");
}
}