我正在玩文字游戏,它的方法之一是加扰方法,它应该使用String,然后使用Collections.shuffle(ListOfSChars)对其进行洗牌;并检查加扰是否在SortedSet词典中。如果dictionary.contains(scramble)&& scramble!=的输出扰码
我的代码中的示例是grapes,如果满足两个条件,它将输出任何可能的grape字,
-首先,新的乱码不能是葡萄。 wordsSet.contains(争夺)
第二,新的加扰单词必须在字典中。加扰!= s
我的代码忽略了葡萄(如果(wordsSet.contains(scramble)&& scramble!= s))
我如何避免返回相同的字符串?
谢谢,
public class F
{
public static void main(String[] args)
{
String s = "grapes";
SortedSet<String> dictionary = new TreeSet<String>(EnglishWords);
List<Character> list = new ArrayList<Character>();
for (char c : s.toCharArray)
list.add(c);
Collections.shuffle(list);
String scramble = "";
StringBuilder sb1 = new StringBuilder();
for (char c : list)
sb1.append(c);
scramble = sb1.toString();
sb1.setLength(0);
boolean found = false;
while (found != true)
{
Collections.shuffle(list);
for (char c : list)
sb1.append(c);
scramble = sb1.toString();
sb1.setLength(0);
if (wordsSet.contains(scramble) && scramble != s)
{
found = true;
break;
} else if (!wordsSet.contains(scramble))
{
found = false;
}
}
System.out.println("scrambled word is " + scramble);
}
}
最佳答案
尝试
!scramble.equals(s)
代替
scramble != s
前者是您如何正确比较Java中的字符串。