Maison > Java > javaDidacticiel > Comment compter efficacement les occurrences de sous-chaînes dans une chaîne ?

Comment compter efficacement les occurrences de sous-chaînes dans une chaîne ?

Barbara Streisand
Libérer: 2024-12-18 13:54:10
original
815 Les gens l'ont consulté

How to Efficiently Count Substring Occurrences in a String?

Recherche d'occurrences de sous-chaîne dans une chaîne

Dans le code suivant, notre objectif est de déterminer le nombre de fois que la sous-chaîne findStr apparaît dans le string str :

String str = "helloslkhellodjladfjhello";
String findStr = "hello";
int lastIndex = 0;
int count = 0;

while (lastIndex != -1) {
    lastIndex = str.indexOf(findStr, lastIndex);

    if (lastIndex != -1)
        count++;

    lastIndex += findStr.length();
}

System.out.println(count);
Copier après la connexion

Cependant, cet algorithme peut ne pas réussir à se terminer dans certaines circonstances. Le problème réside dans le fait que lastIndex = findStr.length() pourrait amener l'algorithme à rechercher au-delà de la fin de la chaîne. Pour résoudre ce problème, nous pouvons plutôt utiliser l'approche suivante :

String str = "helloslkhellodjladfjhello";
String findStr = "hello";
int count = StringUtils.countMatches(str, findStr);
System.out.println(count);
Copier après la connexion

Ce code utilise la méthode StringUtils.countMatches d'Apache Commons Lang, qui fournit une solution plus robuste et plus efficace pour compter les occurrences de sous-chaînes.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal