當前位置:首頁 » 編程語言 » 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;
}

熱點內容
安卓電腦如何連手機熱點 發布:2025-01-13 19:40:52 瀏覽:142
pythonnumexpr 發布:2025-01-13 19:34:56 瀏覽:489
linuxpython版本查看 發布:2025-01-13 19:18:37 瀏覽:741
寶馬三系的哪個配置走量 發布:2025-01-13 19:12:14 瀏覽:695
區域網如何訪問伺服器 發布:2025-01-13 18:56:24 瀏覽:189
javaarraylist訪問 發布:2025-01-13 18:56:10 瀏覽:671
如何確定膠體是否配置成功 發布:2025-01-13 18:46:07 瀏覽:73
fgo緩存多大 發布:2025-01-13 18:42:13 瀏覽:972
能緩解壓力的水果 發布:2025-01-13 18:15:36 瀏覽:391
怎麼把文件壓縮成文件 發布:2025-01-13 18:15:33 瀏覽:610