Contando la ocurrencia de una cadena en una matriz de cadenas

arrow:

Me di cuenta de cómo contar la ocurrencia de todas las cadenas esperan que uno de ellos porque estoy utilizando indexOf porque no he aprendido nada nuevo en esta clase que estoy tomando así que me preguntaba si puedo conseguir ayuda aquí está el código . (No es capaz de contar el "gato" en negrita)

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:

Se puede utilizar indexOfpara contar todas las apariciones de una cadena, pero usted tiene que utilizar la forma que toma el Índice en el que para empezar a contar, que será el índice previamente encontrado más la longitud de la cadena de consulta.

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;
}

Que produce el resultado deseado: 4,1,0

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=393897&siteId=1
Recomendado
Clasificación