¿Qué algoritmo es usado por la función Java () de la búsqueda de subcadenas?

el método contiene se define dentro de la clase java.lang.String. Para comprender el método contiene, permítanme comenzar con dos métodos más (ya que el método contiene los usa internamente).

1- toString (): – método toString definido en la clase String, que devuelve la representación de cadena de un objeto.

  public String toString () {
 devuelve esto;  // Devuelve la representación de cadena del objeto actual
 }

2- indexOf (): – el método indexOf también se define dentro de la clase String, que devuelve el índice dentro de esta cadena de la primera aparición de la subcadena especificada (si la subcadena no coincide con la cadena dada, este método devuelve -1) ;

  public int indexOf (String str) {
 return indexOf (str, 0);  // 0 indica que la búsqueda comienza desde el índice 0
 }

contiene método:

contiene método se define dentro de la clase String de la siguiente manera:

  public boolean contiene (CharSequence s) {
 return indexOf (s.toString ())> -1;
 }
  1. CharSequence es la interfaz implementada por la clase String.
  2. contiene método acepta argumento de tipo CharSequence (por ejemplo, s).
  3. para convertir el tipo CharSequence en tipo String, método s.toString () utilizado por el método contiene.
  4. El método indexOf devuelve el valor de índice inicial de una cadena dada (si coincide), de lo contrario, devuelve -1.
  5. La condición de retorno en contiene métodos comprueba si el índice producido es mayor que -1 o no, si es así, devuelve verdadero o falso.

Finalmente consideremos un ejemplo:

  String s = "hola, esto es ekesh bahuguna";
 System.out.println (s.contains ("ekesh"));  // caso 1: verdadero
 System.out.println (s.contains ("arenoso"));  // caso 2: falso

Caso 1:

  • En el primer caso, indexOf (s.toString (“ekesh”)) devuelve 14 (porque la subcadena dada es parte de la cadena)
  • condición adicional evaluada, 14> -1, que es cierto, por lo tanto, contiene el método devuelve verdadero.

Caso 2:

  • En el segundo caso, indexOf (s.toString (“sandy”)) devuelve -1 (porque la subcadena dada no coincide con la cadena dada)
  • condición adicional evaluada, -1> -1 que es falso, por lo tanto, contiene métodos devuelve falso.