ストリングの配列に文字列の発生を数えます

アロー:

私はここに助けを得ることができる場合、私は思っていたので、私は取っていることはコードであることを、このクラスで新しい何かを学んでいないので、私は私がのindexOfを使用していますので、それらのいずれかを期待するすべての文字列の発生をカウントする方法を考え出しました。(太字の「猫」をカウントすることができません)

class Main {


  public static void main(String[] args) {
    String[] arr= {"Catcat", "Dogsaregoodcatsarebetter", "Ilovecatcat", "Goatsarecutetoo"};
    System.out.println(countOccurence2(arr, "cat"));
    System.out.println(countOccurence2(arr, "cute"));
    System.out.println(countOccurence2(arr, "horse"));

  }


  public static int countOccurence2(String[]arr, String n)

  {

        int count = 0;


        for(int i = 0; i < arr.length; i++)
        {
            if(arr[i].indexOf(n) != -1)
            {

               count++;


            }
        }
        return count;
  }
}
SirRaffleBuffle:

あなたは使用することができindexOf、文字列のすべての出現をカウントしていますが、使用する必要がありますフォーム以前に見つかったインデックスに加えて、クエリ文字列の長さになりますカウントを開始する位置のインデックスをとり、。

public static int countOccurence2(String[]arr, String n)
{
    int count = 0;
    for(int i = 0; i < arr.length; i++)
    {
      int idx = arr[i].indexOf(n);
      while(idx != -1)
      {
        count++;
        idx = arr[i].indexOf(n, idx+n.length());
      }
    }
    return count;
}

これは所望の出力を生成します。4,1,0

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=393894&siteId=1