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

java身份证号

发布时间: 2022-11-17 18:02:54

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

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

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

结果:
19990305

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

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

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

  • String sex;

  • // 判断性别

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

  • sex = "女";

  • } else {

  • sex = "男";

  • }

❸ 身份证号在java中的声明类型用什么

string因为身份证有的后头是带字母的
比如我就见过带x结尾的身份证号码。

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

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

❺ java代码怎么校验身份证号码含有非法字符

如果只要判断有非法的字符(除0-9和Xx外)可用正则表达式publicstaticvoidmain(String[]args){//="2142213weqrwe32";StringregEx="[^0-9Xx]";Patternpat=Pattern.compile(regEx);Matchermat=pat.matcher(s);booleanrs=mat.find();if(rs){System.out.print("有非法字符");}另外,校验身份证号码有专门程序的,可直接校验身份证号是否正确,在自己在网上找下

❻ 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语言从键盘上输入一个身份证号码:回车之后,判断是否为正确号码(位数、有无

import java.util.*;
public class Identity{
public static void main(String args[]){
Scanner s=new Scanner(System.in);
System.out.print("请输入你的身份证号码(必须为数字或x):");
String l=s.nextLine();
if(l=="")
{
System.out.print("身份证号码不能为空!");
}
else if(l.length()<19&&l.length()>17)
{
System.out.print("你输入的18为身份证号码为:"+l);
}
else
{
System.out.print("你输入的身份证位数不正确!");
}
}
}
上面代码,可以运行成功,功能:1、判断是否有输入;2、只有输入18为号码才提示输入正确的信息,否则提示输入有误。没有加注释,希望对你有帮助,有问题请追加哦。

❽ 使用java判断输入身份证号位数是否正确判断输入是否有效

public static void getString(){
String a,b;
while (true) {
Scanner input = new Scanner(System.in);
System.out.println("请输入您的18位身份证号码!!");
a = (String) input.next();
if (a.length() == 18) {
a.matches("/D");
b = a.substring(6, 14);
System.out.println("请的出生日期为:" + b);
if(a.charAt(16)%2 == 0)
{
System.out.println("您的性别是女性!");
}else{
System.out.println("您的性别是男性!");
}
} else {
System.out.println("您输入的身份证错误!!");
}
}
}

❾ java用正则表达式判断一个18位身份证号是否有效

很显然 是你得正则表达式不对啊,正确的18位身份证验证正则为:

Stringregex="^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$";		

而且就算正则表达式正确了,你的逻辑判断代码也是有问题,

publicclassHomework{
publicstaticvoidmain(String[]args){
Stringregex="^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$";
System.out.println("请输入18位的身份证号码:");
Scannerscanner=newScanner(System.in);
Strings=scanner.nextLine();
if(s.matches(regex)){
inty1,y2;
Stringyear1=s.substring(6,8);
y1=Integer.parseInt(year1);
Stringyear2=s.substring(8,10);
y2=Integer.parseInt(year2);
if((y1==18&&y2>=87&&y2<=89)
||(y1==19&&y2>=0&&y2<=99)
||(y1==20&&y2<=17)){
intm,d;
Stringmonth=s.substring(10,12);
m=Integer.parseInt(month);
Stringday=s.substring(12,14);
d=Integer.parseInt(day);
if((m==1||m==3||m==5||m==7||m==8||m==10||m==12)
&&(d==31))
System.out.println("有效");
elseif((m==4||m==6||m==9||m==11)&&(d==30))
System.out.println("有效");
elseif(m==2){
inty;
Stringyear=s.substring(6,10);
y=Integer.parseInt(year);
if(((y%4==0&&y%100!=0)||y%400==0)
&&(d==29))
System.out.println("有效");
elseif(((y%4!=0&&y%100==0)||y%400!=0)
&&(d==28))
System.out.println("有效");
else
System.out.println("无效");
return;
}else{
System.out.println("无效");
return;
}
intss;
Stringsex=s.substring(16,17);
ss=Integer.parseInt(sex);
if(ss%2==0)
System.out.println("女性");
else
System.out.println("男性");
}else
System.out.println("无效");
}else
System.out.println("无效");
}
}

❿ 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;
}

热点内容
python3字符串格式 发布:2025-01-14 00:43:29 浏览:581
openwrt编译模块 发布:2025-01-14 00:40:25 浏览:384
长江存储中芯国际 发布:2025-01-14 00:33:11 浏览:150
安卓手机怎么样测通路 发布:2025-01-14 00:30:50 浏览:465
uImage编译 发布:2025-01-14 00:23:37 浏览:39
php繁体简体 发布:2025-01-14 00:22:45 浏览:376
雷克萨斯es200哪个配置值得买 发布:2025-01-14 00:14:34 浏览:784
python可以开发游戏吗 发布:2025-01-14 00:14:28 浏览:484
我的世界电脑版决战斗罗服务器怎么玩 发布:2025-01-14 00:14:26 浏览:321
python时序图 发布:2025-01-14 00:10:46 浏览:961