java生成一个随机的身份证号

简介: 【10月更文挑战第5天】java生成一个随机的身份证号

要生成一个随机的身份证号,可以使用Java的Random类来生成随机数。以下是一个简单的示例:

import java.util.Random;

public class RandomIDCardGenerator {
   
    public static void main(String[] args) {
   
        System.out.println(generateRandomIDCard());
    }

    public static String generateRandomIDCard() {
   
        Random random = new Random();
        StringBuilder idCard = new StringBuilder();

        // 生成前6位地区代码(这里简化为随机数字)
        for (int i = 0; i < 6; i++) {
   
            idCard.append(random.nextInt(10));
        }

        // 生成年份(1900-2099)
        int year = random.nextInt(100) + 1900;
        idCard.append(year);

        // 生成月份(01-12)
        int month = random.nextInt(12) + 1;
        if (month < 10) {
   
            idCard.append("0");
        }
        idCard.append(month);

        // 生成日期(01-31)
        int day = random.nextInt(31) + 1;
        if (day < 10) {
   
            idCard.append("0");
        }
        idCard.append(day);

        // 生成顺序码(000-999)
        for (int i = 0; i < 3; i++) {
   
            idCard.append(random.nextInt(10));
        }

        // 计算校验码并添加到末尾
        char checkCode = calculateCheckCode(idCard.toString());
        idCard.append(checkCode);

        return idCard.toString();
    }

    private static char calculateCheckCode(String idCardWithoutCheckCode) {
   
        int[] weights = {
   7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
        char[] checkCodes = {
   '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
        int sum = 0;
        for (int i = 0; i < idCardWithoutCheckCode.length(); i++) {
   
            sum += (idCardWithoutCheckCode.charAt(i) - '0') * weights[i];
        }
        int remainder = sum % 11;
        return checkCodes[remainder];
    }
}

这个示例中,我们首先生成了一个简单的随机地区代码,然后生成了一个随机的出生年月日,接着生成了一个随机的顺序码。最后,我们计算了校验码并将其添加到身份证号的末尾。请注意,这个示例仅用于演示目的,实际的身份证号生成可能需要遵循更严格的规则和算法。

目录
相关文章
|
24天前
|
Java
Java实现随机生成某个省某个市的身份证号?如何编码?
【10月更文挑战第18天】Java实现随机生成某个省某个市的身份证号?如何编码?
92 5
|
5月前
|
IDE Java 数据库连接
JAVA注解:元数据,代码的“身份证”?!
【6月更文挑战第29天】Java注解,作为代码的“身份证”,提供元数据,用于编译时检查、自动生成代码和框架集成。例如,@Override确保方法重写正确,@Deprecated标记过时,@Autowired在Spring中实现依赖注入。Lombok的@Getter/@Setter简化getter/setter。注解提升代码质量和效率,是现代Java开发的关键实践。
33 0
|
6月前
|
人工智能 文字识别 Java
AI工具【OCR 01】Java可使用的OCR工具Tess4J使用举例(身份证信息识别核心代码及信息提取方法分享)
【2月更文挑战第1天】Lept4J和Tess4J都是基于Tesseract OCR引擎的Java接口,可以用来识别图像中的文本,本次介绍Tess4J
649 0
java202302java学习笔记第十四天-身份证信息查看
java202302java学习笔记第十四天-身份证信息查看
39 0
java202302java学习笔记第十四天-身份证信息查看
|
Java
java身份证、手机号、邮箱正则校验工具类
java身份证、手机号、邮箱正则校验工具类
663 0
|
Java
JAVA 身份证信息的解析 成年、出生年月、出生地等等
JAVA 身份证信息的解析 成年、出生年月、出生地等等
236 0
JAVA 身份证信息的解析 成年、出生年月、出生地等等
|
Java
Java实现身份证号码验证
整理文档时,搜刮出一个Java实现身份证号码验证源码示例代码,稍微整理精简了一下分享给大家。
410 0
|
前端开发 JavaScript Java
推荐一个Java身份证号码识别系统
推荐一个Java身份证号码识别系统
202 0
推荐一个Java身份证号码识别系统
java数据脱敏处理,手机号,身份证号和银行卡号打码展示
java数据脱敏处理,手机号,身份证号和银行卡号打码展示
10942 0