我正在开发一个文字游戏,其中一个方法是一个争夺方法,它应该使用String s然后使用Collections.shuffle(ListOfSChars)将其洗牌;并检查Scramble是否在SortedSet字典中。如果是dictionary.contains(scramble)&& scramble!= s输出争夺
我的代码中的示例是葡萄,如果有两个条件,它应该输出任何可能的葡萄词, - 首先,新的炒作词不能是葡萄。 wordsSet.contains(加扰) - 其次,新的乱码必须在字典中。争抢!= s
我的代码输出葡萄忽略(if(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);
}
}
答案 0 :(得分:4)
尝试
!scramble.equals(s)
而不是
scramble != s
前者是你如何正确比较Java中的字符串。