我正在试图弄清楚如何从表中获取随机字符串,包括10个单词。我正在制作游戏刽子手,但我不想要两个单词。游戏将持续到5个单词被选中。
有什么好的解决方案吗?这是我现在的表的随机化方法。
private String wordList[] = { "String1", "String2", ..... }
public void getRandomWord(){
Random generator = new Random();
int r = generator.nextInt(9);
activeWord = wordList[r];
}
我试过让它工作,但没有运气:
ArrayList<String> usedWords= new ArrayList<String>();
public void getRandomWord(){
Random generator = new Random();
int r = generator.nextInt(9);
if(addWord(wordList[r])){
activeWord= wordList[r];
}
}
private boolean addWord(String word) {
for(String v : usedWords){
if(!v.equals(word)){
usedWords.add(word);
return true;
}
else{
getRandomWord();
}
}
return false;
}
我想我已经进行了迭代,但我猜这不是必要的。
我一直在考虑使用带有布尔值的字符串表。因此,如果单词的值为true,那么就抓住它,如果不是,那就继续,直到我找到一个单词。
我可能会使用while循环吗?
答案 0 :(得分:2)
如果将wordList设为ArrayList,则可以在每次使用时从列表中删除该单词。这样,可能值的列表会缩小,并且不会有两次选择单词的风险。