Maison > Java > javaDidacticiel > Comment puis-je compter de manière fiable les occurrences de sous-chaînes dans une chaîne ?

Comment puis-je compter de manière fiable les occurrences de sous-chaînes dans une chaîne ?

DDD
Libérer: 2024-12-14 06:27:10
original
957 Les gens l'ont consulté

How Can I Reliably Count Substring Occurrences in a String?

Compter les occurrences de sous-chaîne dans une chaîne

Lorsque vous essayez de vérifier les occurrences d'une sous-chaîne dans une chaîne, un problème courant survient lorsque la recherche l'algorithme ne parvient pas à se terminer. Pour remédier à cela, il est impératif d'aborder les points suivants :

Comprendre le problème

Considérez l'exemple fourni, où l'objectif est de compter les occurrences de « bonjour » dans la chaîne "helloslkhellodjladfjhello". L'algorithme recherche de manière itérative la sous-chaîne à l'aide de la méthode indexOf. Cependant, il ajuste progressivement le lastIndex en fonction de la longueur de la sous-chaîne, ce qui entraîne une boucle infinie.

Une solution fiable

Pour surmonter cela, on peut utiliser le countMatches méthode d’Apache Commons Lang. Cette fonction prédéfinie compte avec précision les occurrences de sous-chaînes, comme le démontre le code ci-dessous :

String str = "helloslkhellodjladfjhello";
String findStr = "hello";

System.out.println(StringUtils.countMatches(str, findStr));
Copier après la connexion

Cela donne le nombre attendu de 3.

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!

source:php.cn
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