-7

誰かがこの方法と問題について簡単に説明してくれませんか。5単語未満の入力行を取り、タブ、改行などで行を分割してから、入力行で単語の繰り返しを見つけるために比較を行っていると思います。

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]);
      }
  }
}
4

3 に答える 3

3

関数はhaystack、文字列とneedles文字列配列の 2 つの引数を取ります。

最初に のサイズが 5 より大きいかどうかをチェックしますneedles。5 より大きい場合は、「エラー」を出力して終了します。

そうでない場合は、haystack文字列をいくつかの文字 (一重引用符と二重引用符、タブ、改行、単語境界、フォーム フィード、キャリッジ リターンを含む) に分割して、 という単語の配列にしますwords

各「針」(配列の要素needles) は配列の各要素と比較されwords、「針」がwords配列の要素として検出されると、それぞれの針の「カウンター」がインクリメントされます。

検索後、各針が干し草の山で発生した回数とともに表示されます。

その後、関数は終了します。

于 2012-11-28T20:56:15.500 に答える
1

これは、文字列と最大 5 つの文字列の配列の 2 つの入力を受け取ります。

各単語を配列内の各単語と比較し、一致を数えます。

String 内の配列内の各単語が何回見つかったかを出力します。

于 2012-11-28T20:51:57.337 に答える
0

このメソッドは、検索する最大 5 単語の「干し草の山」テキスト内の「針」単語の数をカウントします。

改善できることの 1 つは、テキストの分割を外側のループの外に移動することです。

もう 1 つの可能性は、針を区切り文字として使用して干し草の山を分割し、count + 1テキストの断片を与えることによって、内側のループを完全に取り除くことです。

于 2012-11-28T20:56:27.903 に答える