当前位置:首页 » 编程语言 » java身份证

java身份证

发布时间: 2023-03-29 23:14:12

java编程输入18位身份证号办别女性男女 代码

18为身份证号码的第17位数字表示性别:奇数表示男性,偶数表示女性

所有代码中,只要截取出第17位的数字出来就可以判断性别,如:

  • String sex;

  • // 判断性别

  • if (Integer.parseInt(CardCode.substring(16).substring(0, 1)) % 2 == 0) {

  • sex = "女";

  • } else {

  • sex = "男";

  • }

Ⅱ 利用Java求出有一串身份证的数字,用分号隔开,提取每个身份证号,统计男性和女

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
class Dome{

public static void main(String[] args) throws IOException {
int quantity[]=new int[2];//1表示扒凯男人的个数,0表示女生个数
String card[]=new String[0];//记录身份证号码
String filePath = "D:/aa.txt";//假设你D盘下有一个aa.txt文件中存放着身份证号码
FileInputStream fin;
try {
fin = new FileInputStream(filePath);//从filePath中获得输入字节
BufferedReader buffReader = new BufferedReader(new InputStreamReader(fin));
String str = "";//用于暂存读取的内容
str = buffReader.readLine();//按行读取内容给str,只读取一行
card=new String[str.length()/17];//因为不知道身份证号码的数量,所以创建可能有的数量
int p=0;//记悔旅录card的数量
for(int i=0;i<str.length();i++){
if(str.indexOf(",",i)!=-1){//判断是否是最后一个逗号
card[p]=str.substring(i,str.indexOf(",",i));//截取对应的身份证号码,这里用的是英文逗号
System.out.println(card[p]);
i=str.indexOf(",", i);//跳到以及处理过的结果末尾
}else{
card[p]=str.substring(i,str.length());
System.out.println(card[p]);
break;//结尾结束循环
}
p++;
}
buffReader.close();//关闭文件流
for(int i=0;i<card.length;i++){
if(card[i].length()==18){//判断是否出错
quantity[((int)card[i].charAt(16)-48)%2]++;//计算第17位是奇数或偶数并对应相加
}
}
System.out.println("男生数量:"+quantity[0]);//输出男生结果
System.out.println("女生数量:"+quantity[1]);//输出女生结果
} catch (FileNotFoundException e) {
System.out.println(e);//输出碧此凳错误原因
}
}

}

不知道符不符合你的要求

Ⅲ JAVA写一个程序,要求输入身份证号获取所在地区代码也就是前六位,和出生年月。

importjava.util.*;
publicclassYugi{
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);
System.out.println("输入身份证号码:");
Stringcode=scan.nextLine().trim();
scan.close();
Stringreg="^(.{6})(.{4})(.{2}).*$";
Stringa=code.replaceAll(reg,"$1");
Stringy=code.replaceAll(reg,"$2");
Stringm=code.replaceAll(reg,"$3");
System.out.println("所在地区代码:"+a);
System.out.println("出生年月:"+y+","+m);

}
}

Ⅳ 在java中身份证号码前17位必须是数字,后一位可以是字符,如果不是提示错误怎么

使用正则表达式即可!
如:
String regex="\\d{17}." //正则表达式,前17位数字,后1一位为任意字符
//定义一个身份证String字符串
String string="12345678912345678x"
//验证身份证
if(!string.matches(regex))
System.out.println("身份证错误");

Ⅳ 用Java从任意给定的身份证号码中提取此人的出生日期

用Java从任意给定的身份证号码中提取此人的出生日期,例子如下:

publicclassTestC{
publicstaticvoidmain(String[]args){
//18位的第二代身份证,出生日期是从7位到14位是出生日期
Stringstr="450919199903050123";
//字符串截取下标从0开始的
Stringbirthday=str.substring(6,14);
System.out.println(birthday);
}
}

结果:
19990305

Ⅵ java身份证号位数校验

function checkIdcard(num)
{
num = num.toUpperCase();
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))
{
//alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。');
return false;
}
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
//下面分别分析出生日期和校验位
var len, re;
len = num.length;
if (len == 15)
{
re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
var arrSplit = num.match(re);

//检查生日日期是否正确
var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
var bGoodDay;
bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay)
{
//alert('输入的身份证号里出生日期不对!');
return false;
}
else
{
//将15位身份证转成18位
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0, i;
num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
for(i = 0; i < 17; i ++)
{
nTemp += num.substr(i, 1) * arrInt[i];
}
num += arrCh[nTemp % 11];
return true;
}
}
if (len == 18)
{
re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
var arrSplit = num.match(re);

//检查生日日期是否正确
var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
var bGoodDay;
bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay)
{
//alert(dtmBirth.getYear());
//alert(arrSplit[2]);
//alert('输入的身份证号里出生日期不对!');
return false;
}
else
{
//检验18位身份证的校验码是否正确。
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
var valnum;
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0, i;
for(i = 0; i < 17; i ++)
{
nTemp += num.substr(i, 1) * arrInt[i];
}
valnum = arrCh[nTemp % 11];
if (valnum != num.substr(17, 1))
{
//alert('18位身份证的校验码不正确!应该为:' + valnum);
return false;
}
return true;
}
}
return false;
}
var result = checkIdcard(sfzh);
if (!result)
{
$.messager.alert('提示信息','身份证号码格式不正确');
return;
}

热点内容
瑞纳自动买哪个配置 发布:2024-11-02 20:18:45 浏览:559
sql复制数据库结构 发布:2024-11-02 20:18:43 浏览:582
yaf编译 发布:2024-11-02 20:06:30 浏览:126
小数除以大数怎么算法 发布:2024-11-02 19:44:59 浏览:810
安卓手机如何重新设置付款密码 发布:2024-11-02 19:31:44 浏览:980
多巴胺3mg静脉注射怎么配置 发布:2024-11-02 19:25:50 浏览:618
源码之城 发布:2024-11-02 19:24:43 浏览:513
国军标环境存储要求 发布:2024-11-02 19:23:04 浏览:107
sql多行转多列 发布:2024-11-02 19:17:52 浏览:119
linuxftp文件夹权限 发布:2024-11-02 19:17:03 浏览:899