Maison >Java >javaDidacticiel >Compter le nombre d'occurrences d'une 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
str1 = "TPisTPareTPamTP", str2 = "TP";
Count of occurrences of a substring recursively are: 4
The substring TP occurs 4 times in str1.
str1 = "HiHOwAReyouHiHi" str2 = "Hi"
Count of occurrences of a substring recursively are: 3
The substring Hi occurs 3 times in str1.
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.
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; } }
Si nous exécutons le code ci-dessus, il générera la sortie suivante -
Count of occurrences of a substring recursively are: 4
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!