Défi :
Remplacer la première occurrence d'une chaîne dans un texte donné est une tâche courante en programmation. Cet article explique comment procéder efficacement dans .NET.
Solution :
Afin de remplacer la première occurrence d'une chaîne dans .NET nous pouvons utiliser la méthode suivante :
<code class="language-csharp">string ReplaceFirst(string text, string search, string replace) { int pos = text.IndexOf(search); if (pos < 0) return text; return text.Substring(0, pos) + replace + text.Substring(pos + search.Length); }</code>
Cette méthode prend trois paramètres : le texte d'origine, la chaîne à rechercher et la chaîne de remplacement. Il utilise d'abord IndexOf
pour localiser l'index de la première occurrence de la chaîne de recherche dans le texte. Si aucune occurrence n'est trouvée (c'est-à-dire que pos est négatif), le texte original est renvoyé inchangé.
Ensuite, la méthode fonctionne en concaténant la sous-chaîne avant la première occurrence de la chaîne de recherche (de l'index 0 à pos), la chaîne de remplacement et la sous-chaîne après la chaîne de recherche (de l'index pos search.Length à la fin du texte ) pour construire une nouvelle chaîne.
Exemple :
Considérons l'exemple suivant :
<code class="language-csharp">string str = "The brown brown fox jumps over the lazy dog"; str = ReplaceFirst(str, "brown", "quick");</code>
Après l'exécution de ce code, la valeur de str deviendra "Le renard brun rapide saute par-dessus le chien paresseux". La première occurrence de « marron » a été remplacée par « rapide ».
Notes supplémentaires :
Regex.Replace(String, String, Int32)
peut également effectuer cette tâche, mais elle peut être plus coûteuse en termes de calcul que la méthode personnalisée présentée ici. 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!