首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索SortedSet<String>

搜索SortedSet<String>
EN

Stack Overflow用户
提问于 2014-01-18 22:24:39
回答 1查看 261关注 0票数 0

我正在做一个单词游戏,它的方法之一是置乱方法,它应该取字符串s,然后使用Collections.shuffle(ListOfSChars)对其进行洗牌;并检查扰码是否在SortedSet字典中。如果dictionary.contains(扰码) &&扰码!= s输出扰码

我的代码中的例子是葡萄,如果两个条件为真,它应该输出任何可能的葡萄单词,-First,新的置乱词不能是葡萄。WordsSet.contains(扰码) -Second,新的置乱词必须在字典中。乱跑!

我的代码输出忽略葡萄(如果(wordsSet.contains(扰码)&扰码!= s))

如何避免返回相同的字符串?

谢谢,

代码语言:javascript
复制
    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);
    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-18 22:27:03

试一试

代码语言:javascript
复制
!scramble.equals(s)

而不是

代码语言:javascript
复制
scramble != s

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21210664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档