Java身份证号分析身份信息属相星座Word文档格式.docx

上传人:b****6 文档编号:21043385 上传时间:2023-01-27 格式:DOCX 页数:20 大小:18.94KB
下载 相关 举报
Java身份证号分析身份信息属相星座Word文档格式.docx_第1页
第1页 / 共20页
Java身份证号分析身份信息属相星座Word文档格式.docx_第2页
第2页 / 共20页
Java身份证号分析身份信息属相星座Word文档格式.docx_第3页
第3页 / 共20页
Java身份证号分析身份信息属相星座Word文档格式.docx_第4页
第4页 / 共20页
Java身份证号分析身份信息属相星座Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

Java身份证号分析身份信息属相星座Word文档格式.docx

《Java身份证号分析身份信息属相星座Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java身份证号分析身份信息属相星座Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

Java身份证号分析身份信息属相星座Word文档格式.docx

37"

41"

42"

43"

44"

45"

46"

50"

51"

52"

53"

54"

61"

62"

63"

64"

65"

71"

81"

82"

91"

};

publicstaticfinalintpower[]={7,9,10,5,8,4,2,1,6,3,7,9,

10,5,8,4,2};

publicstaticfinalStringverifyCode[]={"

1"

0"

X"

9"

8"

7"

6"

5"

4"

3"

2"

publicstaticfinalintMIN=1930;

publicstaticMap<

String,String>

cityCodes=newHashMap<

();

String,Integer>

twFirstCode=newHashMap<

hkFirstCode=newHashMap<

static{

cityCodes.put("

北京"

);

天津"

河北"

山西"

内蒙古"

辽宁"

吉林"

黑龙江"

上海"

江苏"

浙江"

安徽"

福建"

江西"

山东"

河南"

湖北"

湖南"

广东"

广西"

海南"

重庆"

四川"

贵州"

云南"

西藏"

陕西"

甘肃"

青海"

宁夏"

新疆"

台湾"

香港"

澳门"

国外"

twFirstCode.put("

A"

10);

B"

11);

C"

12);

D"

13);

E"

14);

F"

15);

G"

16);

H"

17);

J"

18);

K"

19);

L"

20);

M"

21);

N"

22);

P"

23);

Q"

24);

R"

25);

S"

26);

T"

27);

U"

28);

V"

29);

30);

Y"

31);

W"

32);

Z"

33);

I"

34);

O"

35);

hkFirstCode.put("

1);

2);

3);

}

publicstaticStringconver15CardTo18(StringidCard){

StringidCard18="

"

;

if(idCard.length()!

=CHINA_ID_MIN_LENGTH){

returnnull;

if(isNum(idCard)){

Stringbirthday=idCard.substring(6,12);

DatebirthDate=null;

try{

birthDate=newSimpleDateFormat("

yyMMdd"

).parse(birthday);

}catch(ParseExceptione){

e.printStackTrace();

Calendarcal=Calendar.getInstance();

if(birthDate!

=null)

cal.setTime(birthDate);

StringsYear=String.valueOf(cal.get(Calendar.YEAR));

idCard18=idCard.substring(0,6)+sYear+idCard.substring(8);

char[]cArr=idCard18.toCharArray();

if(cArr!

=null){

int[]iCard=converCharToInt(cArr);

intiSum17=getPowerSum(iCard);

StringsVal=getCheckCode18(iSum17);

if(sVal.length()>

0){

idCard18+=sVal;

}else{

returnidCard18;

publicstaticbooleanvalidateCard(StringidCard){

Stringcard=idCard.trim();

if(validateIdCard18(card)){

returntrue;

if(validateIdCard15(card)){

String[]cardval=validateIdCard10(card);

if(cardval!

if(cardval[2].equals("

true"

)){

returnfalse;

publicstaticbooleanvalidateIdCard18(StringidCard){

booleanbTrue=false;

if(idCard.length()==CHINA_ID_MAX_LENGTH){

Stringcode17=idCard.substring(0,17);

Stringcode18=idCard.substring(17,CHINA_ID_MAX_LENGTH);

if(isNum(code17)){

char[]cArr=code17.toCharArray();

Stringval=getCheckCode18(iSum17);

if(val.length()>

if(val.equalsIgnoreCase(code18)){

bTrue=true;

returnbTrue;

publicstaticbooleanvalidateIdCard15(StringidCard){

StringproCode=idCard.substring(0,2);

if(cityCodes.get(proCode)==null){

StringbirthCode=idCard.substring(6,12);

yy"

).parse(birthCode

.substring(0,2));

if(!

valiDate(cal.get(Calendar.YEAR),

Integer.valueOf(birthCode.substring(2,4)),

Integer.valueOf(birthCode.substring(4,6)))){

publicstaticString[]validateIdCard10(StringidCard){

String[]info=newString[3];

Stringcard=idCard.replaceAll("

[\\(|\\)]"

if(card.length()!

=8&

&

card.length()!

=9&

idCard.length()!

=10){

if(idCard.matches("

^[a-zA-Z][0-9]{9}{1}"

)){//台湾

info[0]="

System.out.println("

11111"

Stringchar2=idCard.substring(1,2);

if(char2.equals("

info[1]="

MMMMMMM"

}elseif(char2.equals("

FFFFFFF"

info[2]="

false"

NNNN"

returninfo;

info[2]=validateTWCard(idCard)?

:

}elseif(idCard.matches("

^[1|5|7][0-9]{6}\\(?

[0-9A-Z]\\)?

{1}"

^[A-Z]{1,2}[0-9]{6}\\(?

[0-9A]\\)?

)){

info[2]=validateHKCard(idCard)?

publicstaticbooleanvalidateTWCard(StringidCard){

Stringstart=idCard.substring(0,1);

Stringmid=idCard.substring(1,9);

Stringend=idCard.substring(9,10);

IntegeriStart=twFirstCode.get(start);

Integersum=iStart/10+(iStart%10)*9;

char[]chars=mid.toCharArray();

Integeriflag=8;

for(charc:

chars){

sum=sum+Integer.valueOf(c+"

)*iflag;

iflag--;

return(sum%10==0?

0:

(10-sum%10))==Integer.valueOf(end)?

true

false;

publicstaticbooleanvalidateHKCard(StringidCard){

Integersum=0;

if(card.length()==9){

sum=(Integer.valueOf(card.substring(0,1).toUpperCase()

.toCharArray()[0])-55)

*9

+(Integer.valueOf(card.substring(1,2).toUpperCase()

.toCharArray()[0])-55)*8;

card=card.substring(1,9);

sum=522+(Integer.valueOf(card.substring(0,1).toUpperCase()

Stringmid=card.substring(1,7);

Stringend=card.substring(7,8);

Integeriflag=7;

if(end.toUpperCase().equals("

sum=sum+10;

sum=sum+Integer.valueOf(end);

return(sum%11==0)?

true:

publicstaticint[]converCharToInt(char[]ca){

intlen=ca.length;

int[]iArr=newint[len];

for(inti=0;

i<

len;

i++){

iArr[i]=Integer.parseInt(String.valueOf(ca[i]));

}catch(NumberFormatExceptione){

returniArr;

publicstaticintgetPowerSum(int[]iArr){

intiSum=0;

if(power.length==iArr.length){

iArr.length;

for(intj=0;

j<

power.length;

j++){

if(i==j){

iSum=iSum+iArr[i]*power[j];

returniSum;

publicstaticStringgetCheckCode18(intiSum){

StringsCode="

switch(iSum%11){

case10:

sCode="

break;

case9:

case8:

case7:

case6:

case5:

case4:

case3:

case2:

x"

case1:

case0:

returnsCode;

publicstaticintgetAgeByIdCard(StringidCard){

intiAge=0;

if(idCard.length()==CHINA_ID_MIN_LENGTH){

idCard=conver15CardTo18(idCard);

Stringyear=idCard.substring(6,10);

intiCurrYear=cal.get(Calendar.YEAR);

iAge=iCurrYear-I

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1