java - 预设字符中的非重复字符
问题描述
我想从列表中随机选择一个字母B
, C
,D
并确保它们不会重复。我试过这个,但它重复字母
public class Test {
static Random r = new Random();
static char pickRandom(char... letters) {
return letters[r.nextInt(letters.length)];
}
public static void main(String args[]) {
for (int i = 0; i < 10; i++) {
System.out.print(pickRandom('B', 'C', 'D'));
}
}
}
解决方案
这将跟踪生成的最后一个字符。该程序将不断生成一个新字符,直到生成的字符与上一个字符不同。
char last = 0, next = 0;
for (int i = 0; i < 10; i++) {
do {
last = next;
next = pickRandom('B', 'C', 'D');
} while (next == last);
System.out.print(next);
}
推荐阅读
- docker - 从 localhost 连接到 kafka 容器
- python - 无法更新芹菜中的任务状态
- angular - 角删除谷歌地图标记
- ios - Firebase 每次查询返回不同的值
- mysql - MySQL“GROUP BY”忽略记录顺序
- html - IE 和 chrome 中的 html 表格
- angularjs - AngularJs $http 服务响应监听器
- java - Spring Boot - static content at root level while using a context-path
- javascript - 延迟加载 facebook 客户聊天插件 - 我可以强制打开聊天对话吗?
- .htaccess - .HTACCESS - 在部分 url 之后删除