gpt4 book ai didi

Java:生成唯一的随机字符

转载 作者:行者123 更新时间:2023-11-30 05:46:00 25 4
gpt4 key购买 nike

我有一串“随机”字符。我根据每个字符在字符串中的位置为其分配一个数值,然后设置一个循环以在选择的任意随机位置输出该字符。到目前为止,这是我的代码:

public class Random9_4 {

public static void main(String[] args) {

final String chords = "ADE";
final int N = chords.length();
java.util.Random rand = new java.util.Random();
for(int i = 0; i < 50; i++)
{
//char s = chords.charAt(rand.nextInt(N));
//char t = chords.charAt(rand.nextInt(N));

System.out.println(chords.charAt(rand.nextInt(N)));
//temp variable
//while(s == t)
//{
//
//}System.out.println(chords.charAt(rand.nextInt(N)));
}
}
}

到目前为止,它工作正常,但角色有时会重复。我希望它是字符的“唯一”输出(意味着后续字符不重复)。我知道执行此操作的一种方法是使用临时变量来检查当前字符与前一个字符以及下一个将显示的字符,但我不确定如何开始。

最佳答案

如果新字符与上次迭代中生成的字符匹配,则需要使用内部循环来生成新字符。

temp 是一个临时字符变量,它会记住生成的最后一个字符。因此,在 while 循环中,我们将进行迭代,直到生成一个与 temp 变量中的字符不同的新字符。

如果生成了新字符,它将被分配给 temp 变量,因此在下一次迭代中可以应用相同的逻辑。

public static void main(String[] args) {
final String chords = "ADE";
final int N = chords.length();
Random rand = new Random();
char temp = 0;
for (int i = 0; i < 50; i++) {
char s = chords.charAt(rand.nextInt(N));
while(s == temp){ //loop until a new character is generated, this loop will stop when s != temp
s = chords.charAt(rand.nextInt(N));
}
temp = s; //assign current character to the temp variable, so on next iteration this can be compared with the new character generated.
System.out.println(s);
}
}

关于Java:生成唯一的随机字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54838589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com