Java实现身份证号码格式校验、性别提取与星座计算

以下是一段Java代码示例,用于判断身份证号码格式是否正确,并根据身份证号码提取性别信息和计算星座:javaimport java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;

public class IDCardUtils { public static void main(String[] args) { String idNumber = '身份证号码'; // 请将此处替换为你要验证的身份证号码

    if (isIdNumberValid(idNumber)) {            String gender = extractGender(idNumber);            String constellation = getConstellation(idNumber);

        System.out.println('身份证号码格式正确');            System.out.println('性别信息为:' + gender);            System.out.println('对应星座为:' + constellation);        } else {            System.out.println('身份证号码格式不正确');        }    }

// 判断身份证号码格式是否正确    public static boolean isIdNumberValid(String idNumber) {        // 身份证号码验证逻辑        // 此处省略具体实现,请根据实际情况自行编写验证逻辑

    return true; // 返回验证结果    }

// 提取性别信息    public static String extractGender(String idNumber) {        int secondLastDigit = Integer.parseInt(idNumber.substring(idNumber.length() - 2, idNumber.length() - 1));        if (secondLastDigit % 2 == 0) {            return '女';        } else {            return '男';        }    }

// 获取星座    public static String getConstellation(String idNumber) {        String dateStr = idNumber.substring(6, 14);

    SimpleDateFormat sdf = new SimpleDateFormat('yyyyMMdd');        try {            Date date = sdf.parse(dateStr);            int month = date.getMonth() + 1;            int day = date.getDate();

        if ((month == 1 && day >= 20) || (month == 2 && day <= 18)) {                return '水瓶座';            } else if ((month == 2 && day >= 19) || (month == 3 && day <= 20)) {                return '双鱼座';            } else if ((month == 3 && day >= 21) || (month == 4 && day <= 19)) {                return '白羊座';            } else if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) {                return '金牛座';            } else if ((month == 5 && day >= 21) || (month == 6 && day <= 21)) {                return '双子座';            } else if ((month == 6 && day >= 22) || (month == 7 && day <= 22)) {                return '巨蟹座';            } else if ((month == 7 && day >= 23) || (month == 8 && day <= 22)) {                return '狮子座';            } else if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) {                return '处女座';            } else if ((month == 9 && day >= 23) || (month == 10 && day <= 23)) {                return '天秤座';            } else if ((month == 10 && day >= 24) || (month == 11 && day <= 22)) {                return '天蝎座';            } else if ((month == 11 && day >= 23) || (month == 12 && day <= 21)) {                return '射手座';            } else {                return '摩羯座';            }        } catch (ParseException e) {            e.printStackTrace();            return '';        }    }}

代码说明:

  • isIdNumberValid(String idNumber) 方法用于校验身份证号码格式是否正确,你需要根据实际情况自行编写验证逻辑。* extractGender(String idNumber) 方法根据身份证号码倒数第二位数字的奇偶性判断性别。* getConstellation(String idNumber) 方法根据身份证号码中的出生年月信息计算对应的星座。

你可以将上述代码中的 '身份证号码' 替换为你要验证的具体身份证号码。希望这可以满足你的需求!如有任何问题,请随时提问。


原文地址: https://www.cveoy.top/t/topic/qNI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录