我正在做一个单词游戏,它的方法之一是置乱方法,它应该取字符串s,然后使用Collections.shuffle(ListOfSChars)对其进行洗牌;并检查扰码是否在SortedSet字典中。如果dictionary.contains(扰码) &&扰码!= s输出扰码
我的代码中的例子是葡萄,如果两个条件为真,它应该输出任何可能的葡萄单词,-First,新的置乱词不能是葡萄。WordsSet.contains(扰码) -Second,新的置乱词必须在字典中。乱跑!
我的代码输出忽略葡萄(如果(wordsSet.contains(扰码)&扰码!= 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);
}
}发布于 2014-01-18 22:27:03
试一试
!scramble.equals(s)而不是
scramble != s前者是如何正确地比较Java中的字符串。
https://stackoverflow.com/questions/21210664
复制相似问题