Maison > développement back-end > C++ > Comment puis-je compter efficacement les occurrences de caractères ou de chaînes dans une chaîne?

Comment puis-je compter efficacement les occurrences de caractères ou de chaînes dans une chaîne?

DDD
Libérer: 2025-01-31 06:36:10
original
1049 Les gens l'ont consulté

How Can I Efficiently Count Character or String Occurrences in a String?

compter efficacement les caractères ou les sous-chaînes dans les chaînes

Plusieurs méthodes existent pour compter les occurrences de caractères ou de sous-chaînes spécifiques au sein d'une chaîne plus grande, chacune avec ses propres avantages et inconvénients.

Une technique commune utilise le remplacement des chaînes. Par exemple:

string source = "/once/upon/a/time/";
int count = source.Length - source.Replace("/", "").Length;
Copier après la connexion

Cela calcule le nombre de caractères "/" en soustrayant la longueur de la chaîne après en supprimant tous les caractères "/" de la longueur d'origine.

Une autre approche implique le fractionnement des cordes:

string haystack = "/once/upon/a/time";
string needle = "/";
int needleCount = (haystack.Length - haystack.Replace(needle, "").Length) / needle.Length;
Copier après la connexion

Cette méthode divise la chaîne en fonction de la sous-chaîne cible et détermine le nombre.

Pour les développeurs utilisant .NET 3.5 ou version ultérieure, Linq fournit une solution plus élégante:

int count = source.Count(x => x == '/');
Copier après la connexion

Les capacités de comptage intégrées de Linq rationalisent considérablement le processus.

Fait intéressant, les tests de référence montrent souvent que la méthode de remplacement de la chaîne (le premier exemple) est généralement la plus rapide. Bien que les différences de performance entre ces méthodes soient souvent négligeables pour la plupart des applications, la méthode de remplacement de la chaîne s'avère systématiquement d'être la plus efficace.

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!

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