List<Character> word_to_show = new ArrayList<Character>();
for(char ch:jumbled_word.toCharArray()){
word_to_show.add(ch);
}
Collections.shuffle(word_to_show);
这就是我用来随机播放一个单词然后println()将在控制台中显示它。但很多时候它正在发生,比如说这个词是DO,在洗牌之后我再次得到DO而不是OD(我想得到)。有什么建议吗?
答案 0 :(得分:0)
如果单词是DO,则有50%的可能性来检索DO,50%可以检索OD。
您的代码是正确的。
答案 1 :(得分:0)
您需要在一个循环中进行随机播放,该循环具有确保结果与原始字符串不同的条件。
假设String jumbledWord
是您的原始字符串:
String originalWord = jumbledWord;
while(originalWord.equals(jumbledWord)){
List<Character> wordToShow = new ArrayList<Character>();
for(char ch:jumbledWord.toCharArray()){
wordToShow.add(ch);
}
Collections.shuffle(wordToShow);
jumbledWord = new String(wordToShow.toArray());
}
在此之后,jumbledWord
将包含您的加扰字符串,现在保证与原始字符串不同。