搜索SortedSet <string> </string>

时间:2014-01-18 22:24:39

标签: java string collections set

我正在开发一个文字游戏,其中一个方法是一个争夺方法,它应该使用String s然后使用Collections.shuffle(ListOfSChars)将其洗牌;并检查Scramble是否在SortedSet字典中。如果是dictionary.contains(scramble)&amp;&amp; scramble!= s输出争夺

我的代码中的示例是葡萄,如果有两个条件,它应该输出任何可能的葡萄词, - 首先,新的炒作词不能是葡萄。 wordsSet.contains(加扰) - 其次,新的乱码必须在字典中。争抢!= s

我的代码输出葡萄忽略(if(wordsSet.contains(scramble)&amp;&amp; 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);
    }

}

1 个答案:

答案 0 :(得分:4)

尝试

!scramble.equals(s)

而不是

scramble != s

前者是你如何正确比较Java中的字符串。