Java 错误的布尔赋值-字谜算法
我知道你可能知道更好更快的方法,但是对不起,我正在学习 我的问题是这种方法应该。。。但不是用我现在的代码…如果第二个列表中的检查单词中存在特定单词的所有已检查字母,则返回布尔“anagram”TRUE 我的布尔值仍然得到最后检查的字母状态,请帮助Java 错误的布尔赋值-字谜算法,java,Java,我知道你可能知道更好更快的方法,但是对不起,我正在学习 我的问题是这种方法应该。。。但不是用我现在的代码…如果第二个列表中的检查单词中存在特定单词的所有已检查字母,则返回布尔“anagram”TRUE 我的布尔值仍然得到最后检查的字母状态,请帮助 for (String aWord : aWordsList){ //main List positions loop tempWordsList = new ArrayList<String>(aW
for (String aWord : aWordsList){ //main List positions loop
tempWordsList = new ArrayList<String>(aWordsList);;
//set anagram TRUE if all letters of examined word found in temp List
boolean anagram = true;
for (int a=0; a<tempWordsList.size(); a++){ //temp List word loop
anagram = true;
for (int i=0; i<aWord.length(); i++){ //main List word Letters loop
anagram = true;
boolean letterFound = true;
for (int letter=0; letter < tempWordsList.get(a).length(); letter++){ //temp List word Letters loop
anagram = true;
String checkedTempWord = tempWordsList.get(a);
char checkedLetter = aWord.charAt(i);
char checkedTempLetter = tempWordsList.get(a).charAt(letter);
if (aWord.charAt(i)==tempWordsList.get(a).charAt(letter)){
letterFound = true;
break;
// OK, jump out and check next letter
}else{
letterFound= false;
}
}
if (anagram == true && letterFound==true) {
anagram=true;
}else{
anagram=false;
}
System.out.println(aWord +" in "+ tempWordsList.get(a) + " : " + aWord.charAt(i) + " " + letterFound);
}
System.out.println(aWord + " has anagram in " + tempWordsList.get(a) + ": " + anagram);
System.out.println();
}
System.out.println(aWord + " " + tempWordsList + " " + anagram);
}
}
}
for(字符串aWord:aWordsList){//主列表位置循环
tempWordsList=新数组列表(aWordsList);;
//如果在临时列表中找到所检查单词的所有字母,则将字谜设置为TRUE
布尔字谜=真;
对于(inta=0;a我想我发现了错误:太多次将anagram设置为true。。。
这段代码看起来对我有用:
//set anagram TRUE if all letters of examined word found in temp List
boolean anagram = true;
for (int a=0; a<tempWordsList.size(); a++){ //temp List word loop
anagram = true;
for (int i=0; i<aWord.length(); i++){ //main List word Letters loop
//anagram = true;
boolean letterFound = true;
for (int letter=0; letter < tempWordsList.get(a).length(); letter++){ //temp List word Letters loop
//anagram = true;
//如果在临时列表中找到所检查单词的所有字母,则将anagram设置为TRUE
布尔字谜=真;
对于(int a=0;a请正确格式化代码。(使用联机格式化程序)。为什么在第二行有第二个;
?tempWordsList=new ArrayList(aWordsList);
我发现我必须删除不同大小的单词您是否应该将aWordsList中的单词与不同列表中的单词进行比较?tempWordsList=new ArrayList(aWordsList)创建一个与awordslisties内容相同的新列表,上面我将其缩短的部分删除:例如(Iterator Iterator=tempWordsList.Iterator();Iterator.hasNext();){String String=Iterator.next();if(String.equals(aWord)){//从迭代器和列表中删除当前元素。Iterator.Remove();}在编写时,您的代码将始终在aWordsList中为每个单词找到至少一个字谜,因为单词本身符合条件。