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);
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);
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!