用java写一个随机生成用户名称的代码,用户名称不可重复
时间: 2023-03-03 08:15:12 浏览: 300
以下是一个用 Java 编写的随机生成不重复用户名称的示例代码:
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomUserNameGenerator {
private static final String CHARACTERS = "abcdefghijklmnopqrstuvwxyz0123456789";
private static final int NAME_LENGTH = 8;
private static final int MAX_ATTEMPTS = 1000;
private Set<String> existingNames = new HashSet<>();
public String generateUserName() {
Random random = new Random();
String userName;
int attempts = 0;
do {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < NAME_LENGTH; i++) {
int index = random.nextInt(CHARACTERS.length());
sb.append(CHARACTERS.charAt(index));
}
userName = sb.toString();
attempts++;
} while (existingNames.contains(userName) && attempts < MAX_ATTEMPTS);
if (attempts == MAX_ATTEMPTS) {
throw new RuntimeException("Failed to generate a unique username after " + attempts + " attempts.");
}
existingNames.add(userName);
return userName;
}
}
```
这段代码中,`CHARACTERS` 字符串包含所有可能出现在用户名中的字符,`NAME_LENGTH` 是用户名的长度,`MAX_ATTEMPTS` 是生成不重复用户名的最大尝试次数,`existingNames` 是已经生成的用户名的集合。
`generateUserName()` 方法使用 `Random` 类生成随机用户名,直到生成的用户名在 `existingNames` 中不存在或达到最大尝试次数为止。如果尝试达到了最大次数仍然没有生成不重复的用户名,则会抛出运行时异常。
在调用 `generateUserName()` 方法时,可以直接使用 `RandomUserNameGenerator` 类的实例来生成不重复用户名。例如:
```java
RandomUserNameGenerator generator = new RandomUserNameGenerator();
String userName = generator.generateUserName();
System.out.println(userName);
```
这将会输出一个长度为8的随机字符串作为用户名,保证不与之前生成过的用户名重复。
阅读全文