2012-11-28 21 views
-6

有人可以給我簡要說明這種方法和任何問題。我認爲這是輸入少於5個單詞的行,並在選項卡,換行符等上劃分行,然後進行比較以找出輸入行中的單詞重複。方法的簡要說明,我的java是生鏽的

public static void findNeedles(String haystack, String[] needles){ 
    if(needles.length > 5){ 
     System.err.println("Too many words!"); 
    } 

    else{ 
     int[] countArray = new int[needles.length]; 
     for(int i = 0; i < needles.length; i++){ 
      String[] words = haystack.split("[ \"\'\t\n\b\f\r]", 0); 
      for(int j = 0; j < words.length; j++){ 
       if(words[j].compareTo(needles[i]) == 0){ 
        countArray[i]++; 
     } 
    } 
     } 
     for (int j = 0; j < needles.length; j++) { 
      System.out.println(needls[j] + ": " + countArray[j]); 
     } 
    } 
} 
+2

@RohitJain,0表示類似於[「放棄空的尾隨字符串」](http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#split% 28java.lang.String,%20int%29) – jedwards

+0

也許我們給他一些東西來接受?我會放棄它。 –

回答

1

它有兩個輸入端,一個字符串和至多5個字符串的數組。

它通過字符串比較每個單詞與數組中的每個單詞並計算匹配。

它打印出它在字符串中找到數組中每個單詞的次數。

3

你的函數有兩個參數,haystack一個字符串和needles一個字符串數組。

它首先檢查needles的大小是否大於5.如果是,它將打印一個「錯誤」並隨後退出。

如果不是,它然後拆分haystack串在數量的字符(包括單和雙引號,製表,換行字邊界,表格和回車)爲單詞稱爲words的陣列。

每個「針」(即needles陣列的元件)相比,words數組的每個元素,並且如果「針」遇到作爲words陣列,「計數器」用於各個針的元件被遞增。

搜索結束後,將顯示每根針以及它在乾草堆中發生的次數。

然後該函數退出。

0

該方法計算「乾草堆」文本中「針」字的數量,最多5個字查找。

你可以改進的一件事是將文本拆分移到外部循環之外。

另一種可能性是通過使用針作爲分隔符將乾草堆拆分爲count + 1文本來完全擺脫內部循環。