java随机生成8位字符串,要求数字+大写字母组成且不能重复
时间: 2024-03-20 20:42:41 浏览: 142
好的,以下是Java代码实现:
```java
import java.util.*;
public class RandomStringGenerator {
public static void main(String[] args) {
String str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
StringBuilder sb = new StringBuilder(8);
Random random = new Random();
Set<Character> set = new HashSet<Character>();
while (set.size() < 8) {
int index = random.nextInt(str.length());
char c = str.charAt(index);
if (!set.contains(c)) {
set.add(c);
sb.append(c);
}
}
String randomString = sb.toString();
System.out.println("随机生成的8位字符串为:" + randomString);
}
}
```
代码解释:
1. 首先定义包含数字和大写字母的字符串 `str`。
2. 创建一个 `StringBuilder` 对象 `sb`,用于存储随机生成的字符。
3. 创建一个 `Random` 对象 `random`,用于生成随机数。
4. 创建一个 `Set` 集合 `set`,用于存储已经生成的字符,以确保不重复。
5. 使用 `while` 循环,不断生成随机字符,直到 `set` 集合中有 8 个不重复的字符为止。
6. 将随机字符添加到 `sb` 中。
7. 将 `sb` 转换为字符串类型,并输出生成的随机字符串。
阅读全文