2015-11-03 58 views
0

我知道,可能你知道更好,更快的方式,但原諒我 - 我學習......錯布爾分配 - 字謎算法

我的問題是,這種方法應該......但不是我現在的代碼...返回布爾「字謎」 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); 
       } 
      } 


     } 
+0

請正確格式化你的代碼。 (使用在線格式化程序)。爲什麼你在第二行有第二個';'? 'tempWordsList =新的ArrayList (aWordsList);;' – Frakcool

+0

我發現,我必須消除那些規模 – mallorn

+0

是你應該在不同的列表進行比較,在aWordsList單詞的詞不同的詞? tempWordsList = new ArrayList (aWordsList)創建一個新的列表,其內容與aWordsList相同 – Thevenin

回答

0

我想我找到了錯誤:太多次字謎設置爲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; 
+0

nope ...它仍然是錯誤的 – mallorn