Maison > Java > javaDidacticiel > le corps du texte

Compter le nombre d'occurrences d'une sous-chaîne de manière récursive en Java

王林
Libérer: 2023-09-17 19:49:02
avant
1147 Les gens l'ont consulté

Compter le nombre doccurrences dune sous-chaîne de manière récursive en Java

Étant donné deux chaînes str_1 et str_2. Le but est de compter le nombre d'occurrences de la sous-chaîne str2 dans la chaîne str1 en utilisant une procédure récursive.

Une fonction récursive est une fonction qui s'appelle dans sa définition.

Si str1 est "Je sais que tu sais que je sais" et str2 est "savoir"

Le nombre d'occurrences est de - 3

Comprenons à travers des exemples.

Par exemple, la traduction chinoise de

input

str1 = "TPisTPareTPamTP", str2 = "TP";
Copier après la connexion

output

Count of occurrences of a substring recursively are: 4
Copier après la connexion
Copier après la connexion

Explication

est :

Explication

The substring TP occurs 4 times in str1.
Copier après la connexion

La traduction chinoise de input

str1 = "HiHOwAReyouHiHi" str2 = "Hi"
Copier après la connexion

output

Count of occurrences of a substring recursively are: 3
Copier après la connexion

Explication

est :

Explication

The substring Hi occurs 3 times in str1.
Copier après la connexion

ci-dessous La méthode utilisée dans le programme est la suivante -

Dans cette méthode, nous rechercherons l'occurrence de str2 dans str1 en utilisant la méthode contain() en java. Renvoie vrai si str2 existe dans str1. Si c'est vrai, supprimez la première correspondance de str1 en la remplaçant par "" à l'aide de la méthode ReplaceFirst() en Java et en ajoutant 1 à la valeur de retour pour augmenter le nombre.

  • Prenez deux chaînes comme str1 et str2.

  • La méthode récursive subsrting_rec(String str, String sub) accepte la chaîne str et sa sous-chaîne sub et renvoie le nombre de fois que sub apparaît dans str.

  • Vérifiez si str.contains(sub) est vrai. ( str has sub )

  • Si c'est vrai, utilisez str.replaceFirst(sub,"") pour remplacer la première occurrence de sub par "".

  • Faites cela dans un appel récursif à subsrting_rec(String str, String sub).

  • À la fin de toutes les récursions, la somme de toutes les valeurs renvoyées compte .

  • Imprimez le résultat.

Exemple

Démo en direct

public class recursive{
   public static void main(String args[]){
      String str1 = "TPisTPareTPamTP", str2 = "TP";
      System.out.println("Count of occurrences of a substring recursively are: "+subsrting_rec(str1, str2));
   }
   static int subsrting_rec(String str, String sub){
      if (str.contains(sub)){
         return 1 + subsrting_rec(str.replaceFirst(sub, ""), sub);
      }
      return 0;
   }
}
Copier après la connexion

Output

Si nous exécutons le code ci-dessus, il générera la sortie suivante -

Count of occurrences of a substring recursively are: 4
Copier après la connexion
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal