Java标准问题
Random random = new Random();
String randomLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int n=0; n<=25; n++)
System.out.print(randomLetters.charAt(random.nextInt(randomLetters.length())));
当打印随机26个字母有重复的字母我想打印随机26个字母没有打印重复的字母
这个结果显示给我看
FXNJZMQWFTSKLRRFHOYWGTIQPWBUILD
# 1 楼答案
您需要删除刚刚从字符串中选择的索引。因此,如果将该字符串更改为stringbuilder,则可以使用函数deleteCharAt(index)
希望有帮助
# 2 楼答案
因为只有26个字母,我假设你只需要随机排列的大写字母表。要实现这一点,您应该使用^{} 方法。一种方法是:
注意,如果您没有使用Java 8,那么最后一行将不会编译,因为它使用了^{} 和method reference-Java 7中的等效循环如下所示:
(在这里使用
char
也是有效的,但是我避免了一些自动取消绑定,可能没有什么区别)# 3 楼答案
要打印唯一的字符,我需要一个从0到26的数字列表,将其洗牌,然后通过迭代打印字符,例如:
# 4 楼答案
您可以使用StringBuilder删除每次打印的字母,这样就不会再次打印