Вам необходимо использовать внутренний цикл для генерации нового символа, если он совпадает с символом, сгенерированным в последней итерации.
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);
}
}