java生成不重复9位
时间: 2023-11-17 11:04:54 浏览: 160
可以使用UUID类来生成不重复的9位字符串。UUID类可以生成36位的唯一标识符,其中包含数字和字母。我们可以通过截取其中的一部分来得到9位字符串。具体实现代码如下:
```java
import java.util.UUID;
public class UniqueNineDigitGenerator {
public static String generate() {
String uuid = UUID.randomUUID().toString().replace("-", "");
return uuid.substring(0, 9);
}
public static void main(String[] args) {
System.out.println(generate());
}
}
```
运行结果类似于:
```
b3c5d8a2e
```
相关问题
java生成不重复4位数字
以下是一种生成不重复4位数字的Java代码实现:
```java
import java.util.Random;
import java.util.HashSet;
public class UniqueNumberGenerator {
private static final int MAX_NUMBER = 9999;
private static final int MIN_NUMBER = 1000;
public static void main(String[] args) {
int[] numbers = generateUniqueNumbers(10);
for (int number : numbers) {
System.out.println(number);
}
}
public static int[] generateUniqueNumbers(int count) {
if (count > MAX_NUMBER - MIN_NUMBER + 1) {
throw new IllegalArgumentException("Count exceeds maximum possible unique numbers.");
}
Random random = new Random();
HashSet<Integer> uniqueNumbers = new HashSet<>();
while (uniqueNumbers.size() < count) {
int number = random.nextInt(MAX_NUMBER - MIN_NUMBER + 1) + MIN_NUMBER;
uniqueNumbers.add(number);
}
int[] result = new int[count];
int index = 0;
for (int number : uniqueNumbers) {
result[index++] = number;
}
return result;
}
}
```
上面的代码使用了 HashSet 来保证生成的数字不重复,同时使用了 Random 类来生成随机数。在 `generateUniqueNumbers` 方法中,首先检查传入的 count 参数是否超过了可能的最大唯一数字数量,然后使用 while 循环来不断生成随机数字,直到 HashSet 中存储的数字数量达到 count。最后将 HashSet 中的数字转换为 int 数组并返回。
java生成不重复的19位ID
在Java中,生成不重复的19位ID通常需要结合时间戳、随机数以及序列号来确保唯一性。这里可以使用UUID(通用唯一标识符)、自增序列或者是雪花算法(Snowflake)来实现。以下是几种常见的做法:
1. UUID(版本4):
```java
import java.util.UUID;
public class IDGenerator {
public static String generateID() {
return UUID.randomUUID().toString().replace("-", "");
}
}
```
这种方法生成的是36字符的字符串,你可以取前19个字符。
2. 雪花算法:
```java
import com.alipay.sofa.jarvis.id.SnowflakeIdWorker;
public class IDGenerator {
private final SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0L, 0);
public String generateID() {
long id = idWorker.nextId();
return Long.toHexString(id).toUpperCase(); // 取16进制并转换成大写字母,通常是19位
}
}
```
雪花算法更适用于分布式系统,它能保证全局唯一性和时间顺序。
阅读全文