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

Python022

使用java判断输入身份证号位数是否正确,判断输入是否有效?,第1张

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

/**

* 定义一个方法,输入一个身份证号码(18)位,最终返回一个字符串,格式如下:“尊敬的男士(女士),您是****年**月**日出生的。”

* 要求:如果输入的身份证不是18位,或者格式不正确(包含非数字字符,除了最后一位的X除外)则返回一个字符串“您输入的身份证号码有误”

* */

import java.util.Scanner

public class JudgeID {

public static void main(String[] args){

Scanner reader = new Scanner(System.in)

System.out.println("请输入您的id号码")

String id = reader.next()

System.out.println(judgeID(id))

}

public static String judgeID(String IDNumber){

int len = IDNumber.length()

String wrongMsg = "您输入的身份证号有误"

String correctMsg = null

char lastChar = IDNumber.charAt(len-1)

String year = null

String month = null

String day = null

if(len != 18){

return wrongMsg

}

for(int i = 0i <len-1i++){

if(IDNumber.charAt(i) <'0' || IDNumber.charAt(i) >'9' ){

return wrongMsg

}

}

if(lastChar != 'X' &&lastChar >'0' &&lastChar <'9'){

return wrongMsg

}

//如果身份证格式是没有问题的,那个打印年月日信息

year = IDNumber.substring(6,10)

month = IDNumber.substring(10,12)

day = IDNumber.substring(12,14)

correctMsg = "您是"+year+"年"+month+"月"+day+"日出生!"

return correctMsg

}

}

String id = "123456200801010000"

int year = Integer.parseInt(id.substring(6,10))

System.out.println(year)

if ((year % 4 == 0 &&year % 100 != 0) || year % 400 == 0)

{

System.out.println("是闰年")

}

else {

System.out.println("不是闰年")

}

我写死了身份证 你可以写成静态方法传参进去,找到身份证中年份对应的角标就行了