Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误的布尔赋值-字谜算法_Java - Fatal编程技术网

Java 错误的布尔赋值-字谜算法

Java 错误的布尔赋值-字谜算法,java,Java,我知道你可能知道更好更快的方法,但是对不起,我正在学习 我的问题是这种方法应该。。。但不是用我现在的代码…如果第二个列表中的检查单词中存在特定单词的所有已检查字母,则返回布尔“anagram”TRUE 我的布尔值仍然得到最后检查的字母状态,请帮助 for (String aWord : aWordsList){ //main List positions loop tempWordsList = new ArrayList<String>(aW

我知道你可能知道更好更快的方法,但是对不起,我正在学习

我的问题是这种方法应该。。。但不是用我现在的代码…如果第二个列表中的检查单词中存在特定单词的所有已检查字母,则返回布尔“anagram”TRUE

我的布尔值仍然得到最后检查的字母状态,请帮助

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中为每个单词找到至少一个字谜,因为单词本身符合条件。