我不确定为什么会遇到这个问题。但是基本上我是在改组一个单词,并且我在使用带有循环的arrayList。
这是我的代码,出于调试目的,我添加了几行。
//Declare and Initialize an arrayList for character checking
ArrayList<Boolean> jumbleVerfiy = new ArrayList<Boolean>();
for(int x = 0; x < chosenWord.length(); x++)
jumbleVerfiy.add(false);
while((chosenWord.length()) != (jumbledWord.length()))
{
//Generate random number for getting the random character
int verficationNumber = rnd.nextInt(chosenWord.length());
//Checks if the random number generated has been used before
if(jumbleVerfiy.get(verficationNumber) == false)
{
//Get the character from the randomly generated number and change the boolean array to keep track of
//letters used
jumbledWord += chosenWord.charAt(verficationNumber);
System.out.print(jumbleVerfiy.get(verficationNumber) + " " + verficationNumber);//debug
jumbleVerfiy.add(verficationNumber, true);
System.out.println(" " + jumbledWord + " " + jumbleVerfiy.get(verficationNumber));//debug
}
我的输出如下
false 3 r true
false 4 ry true
false 2 ryr true
false 1 ryra true
false 4 ryray true
tarry ryray
在第二次运行中,此输出4更改为true,但是由于某些原因,在循环时将其设置为false。所以我不断收到一封重复的信。我不确定是什么问题。希望有一些见识。
谢谢,
您正在将值添加到列表中,而不是对其进行设置:
jumbleVerfiy.add(verficationNumber, true);
这意味着,例如,如果您首先选择第二个字母,然后选择第二个字母,则列表最终看起来像(T,F,T,..),就好像您选择了第一个字母和第三个字母一样。
您需要使用:
jumbleVerfiy.set(verficationNumber, true);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句