java 实现UUID生成9位不重复的随机纯数字,不包含字母和字符
时间: 2024-05-13 09:19:04 浏览: 10
Java中可以使用UUID类来生成唯一标识符,但是UUID生成的字符串包含字母和字符,如果需要生成9位不重复的随机纯数字,可以使用Random类。
以下是一个示例代码:
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomNumberGenerator {
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
Random random = new Random();
while (set.size() < 9) {
int number = random.nextInt(1000000000);
set.add(number);
}
for (Integer number : set) {
System.out.println(String.format("%09d", number));
}
}
}
```
该代码中,使用了一个Set集合来存储生成的数字,利用了Set集合的不重复性质。使用Random类生成随机数字,并将其添加到Set集合中,直到集合大小达到9为止。最后,将集合中的数字格式化为9位数字字符串输出即可。
相关问题
java 生成一个64位字符串不重复的随机字符串的算法,建议使用UUID
为了生成一个64位字符串不重复的随机字符串,建议使用UUID。UUID是一个标准的32位长度的字符串,由16个字符以及4个"-"符号组成。可以通过将UUID转换为无"-"符号的形式,即将32位长度的字符串转换为64位长度的字符串。
在Java中,可以使用UUID类来生成UUID。以下是一个简单的示例代码:
```
import java.util.UUID;
public class RandomStringGenerator {
public static String generateRandomString() {
UUID uuid = UUID.randomUUID();
String randomString = uuid.toString().replace("-", "");
return randomString;
}
public static void main(String[] args) {
String randomString = generateRandomString();
System.out.println(randomString);
}
}
```
这段代码中,我们使用UUID.randomUUID()生成一个UUID对象,然后使用toString()方法将其转换为字符串形式。最后,使用replace("-", "")方法将字符串中的"-"符号去掉,得到一个64位长度的随机字符串。
java怎么生成十八位随机不重复的数字
可以使用Java中的UUID类生成一个36位的随机字符串,然后将其中的“-”去掉就可以得到一个32位的随机字符串,再将其转换为Long类型,最后进行取模操作,生成一个18位的随机数。以下是示例代码:
```java
import java.util.UUID;
public class RandomNumberGenerator {
public static long generate() {
String randomStr = UUID.randomUUID().toString().replace("-", "");
long randomLong = Long.parseLong(randomStr, 16);
return randomLong % 100000000000000000L;
}
}
```
调用`RandomNumberGenerator.generate()`方法即可生成一个18位的随机数。需要注意的是,由于long类型最大值为9223372036854775807,所以取模的数字需要小于等于这个值。