我希望有人可以回答这个问题,所以我会尽力解释这一点。
我的目标是在5 个方格的线上生成最多 3 个独特的元音 (AEIOU) 。我使用 2D 数组 ( board[][]
) 制作了 25 个正方形,但我想先做第一行。把它想象成这样:
现在,我的问题是,每当我尝试在方格中生成随机字母时,第一个字母都不会显示。例如,我有E
and O
,O
只会在我的方格中显示,而不是E
。它在我的控制台中打印,但不在我的 GUI 中。
此外,有时会显示重复的字母。我不知道如何解决这个问题:|
以下是我到目前为止所做的代码:
String board[][] = new String[5][5];
String alphabet = "AEIOU";
int numArray[] = new int[5]; //where I can store random indices of alphabet
int finalIndex = 0;
int random = (int) (Math.random()*3) + 1; //random number of vowels to be generated
//this loop covers everything
for(int ctr = 0; ctr < random; ctr++) {
while(ctr != finalIndex) { //checks if there are any duplicates
int rand = (int) (Math.random()*4); //random position for the letter
numArray[ctr] = rand;
while(numArray[ctr] != numArray[finalIndex]) {
finalIndex++;
}
}
//finds the position of the letter in alphabet and converts it to String
char character = alphabet.charAt(numArray[ctr]);
String s = String.valueOf(character);
System.out.println(s);
//loop for putting the letters to the 2D array
for(int i = 0; i < board.length; i++) {
int gen = (int) (Math.random()*4); //random square for letter
for(int j = 0; j <= gen; j++) {
if(i == 0 && j < 5) { //row 1
board[i][gen] = s;
}
}
}
}
我决定不再放置我的 GUI 代码,只是为了让事情变得更简单。