Java 生成唯一不重复的编号,字母加数字9位,工具类生成,并加注释
时间: 2024-01-13 11:02:27 浏览: 51
以下是一个Java生成唯一不重复的编号的工具类,生成的编号包含9位数字和字母的组合。
```java
import java.security.SecureRandom;
import java.math.BigInteger;
public class UniqueIDGenerator {
private static final int ID_LENGTH = 9; // 编号长度
private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; // 可以出现在编号中的字符
private static SecureRandom random = new SecureRandom();
public static String generateUniqueID() {
StringBuilder builder = new StringBuilder(ID_LENGTH);
for (int i = 0; i < ID_LENGTH; i++) {
int randomIndex = random.nextInt(CHARACTERS.length());
builder.append(CHARACTERS.charAt(randomIndex));
}
return builder.toString();
}
}
```
这个工具类使用了Java的`SecureRandom`类生成随机数,保证生成的编号是具有随机性的。`ID_LENGTH`变量指定了编号的长度,`CHARACTERS`变量存储了可以出现在编号中的字符集合。`generateUniqueID`方法使用一个`StringBuilder`对象生成一个由随机字符组成的字符串,然后返回这个字符串。
需要注意的是,这个工具类生成的编号不是全局唯一的,但是在实际应用中,生成的编号足够随机,概率上可以认为不会重复。如果需要全局唯一的编号,可以考虑使用UUID或者数据库自增长的方式生成。