2013-06-02 71 views
1
class MyClass { 
public static void remove_stopwords(String[] query, String[] stopwords) { 
    A: for (int i = 0; i < query.length; i++) { 
     B: for (int j = 0; j < stopwords.length; j++) { 
      C: if (query[i].equals(stopwords[j])) { 
        break B; 
       } 
       else { 
        System.out.println(query[i]); 
        break B; 
       } 
      } 
     } 
    } 
} 

由於某些原因,此代碼只能在問題的中途正常工作。它從查詢中取出第一個停用詞,但忽略了其餘部分。任何幫助,將不勝感激。刪除字符串中的停用詞

+0

爲我們提供了與查詢,停用詞一個例子,期望的結果 –

+0

查詢: 「做」, 「不是」,」滴」, 「中」, 「肥皂」] 禁用詞: 「做」, 「在」] 所需的輸出: 不 下降 肥皂 我的輸出: 不 drop the 肥皂 – LegendaryMouse

+0

檢查更新的代碼 –

回答

1
class MyClass 
{ 
    public static void remove_stopwords(String[] query, String[] stopwords) { 

     A: for (int i = 0; i < query.length; i++) { 
      //iterate through all stopwords 
      B: for (int j = 0; j < stopwords.length; j++) { 
        //if stopwords found break 
        C: if (query[i].equals(stopwords[j])) { 
         break B; 
        } 
        else { 
         // if this is the last stopword print it 
         // it means query[i] does not equals with all stopwords 
         if(j==stopwords.length-1) 
         { 
          System.out.println(query[i]); 
         } 
        } 
       } 
      } 
     } 
    } 
+0

我一直在爲過去的一個小時左右,實際上搞亂了。刪除那個break語句給了我下面的輸出: 不要拖放掉肥皂 – LegendaryMouse

0

我試着在arraylist中添加停用詞,並試圖與stringarray進行比較以刪除是否發現任何停用詞。但是,我在我的循環中發現了一些問題。

public static void main(String[] args) { 
     ArrayList<String> stopWords = new ArrayList<String>(); 
     stopWords.add("that"); 
     stopWords.add("at"); 
     String sentence = "I am not that good at coder"; 
     String[] SentSplit = sentence.split(" "); 
     System.out.println(SentSplit.length); 
     StringBuffer finalSentence = new StringBuffer(); 
     boolean b = false; 

     for(int i=0; i<stopWords.size();i++){ 
      String stopWord = stopWords.get(i); 
      for(int j = 0; j<SentSplit.length;j++){ 
       String word = SentSplit[j]; 
       if(!stopWord.equalsIgnoreCase(word)){ 
        finalSentence.append(SentSplit[j] + " "); 
       } 
      } 
     } 
     System.out.println(finalSentence); 
    } 

預期的結果是:I am not good coder

但我的結果是:I am not good at coder I am not that good coder