我正在玩文字游戏,它的方法之一是加扰方法,它应该使用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中的字符串。

10-06 13:40