Back

c#:StringBuilder

 


  1. Définitions et utilisations
    • Un objet StringBuilder est pas une chaîne mais plutôt un objet auxiliaire utilisé pour la manipulation de caractères.
    • Il contient un tampon , typiquement initialisée avec une chaîne , mais généralement plus grande que cette chaîne. Ce tampon peut être manipulé en place sans créer une nouvelle chaîne de caractères : Vous pouvez insérer , ajouter , supprimer et remplacer les caractères .
    • Lorsque vous avez terminé de manipuler les caractères, utilisez la méthode ToString de StringBuilder pour extraire la chaîne fini de lui.
    • StringBuilder est une classe C # qui vient avec un paquet de ses propres fonctions de manipulation de chaîne .
    • Pour le stockage et la manipulation d’objets à cordes , le langage C # offre une classe StringBuilder mutable . Contrairement à d’autres objets de chaîne , la variable définie avec cette classe StringBuilder lorsque modifié détient la valeur modifiée pour lui-même plutôt que de créer un nouvel objet. Cela signifie que vous êtes à la fois économiser la mémoire du système et exécuter à meilleur de temps .
    • Le probleme se posant avec les chaînes en c# est qu’elle ne sont pas modifi ables. Le type StringBuilder permet de creer des chaînes modi fiables.
    • Pour utilisez des StringBuilder, vous devez ajouter using System.Text; au debut de votre code
      source.
    • La classe StringBuilder se trouve dans l’espace de noms System.Text. Pour éviter d’avoir à fournir un nom de type complet dans votre code, vous pouvez importer l’espace de noms System.Text :
    • ghjgjh
      using System;
      using System.Text;
    • Une chaîne est immuable , ce qui signifie qu’une chaîne ne peut pas être modifié une fois créé .
    • Par exemple , la nouvelle chaîne ” Bonjour mon site apcpedagogie.com” occupera un espace mémoire sur le tas .
    • Maintenant , en changeant la chaîne initiale ” Bonjour mon site apcpedagogie.com” à ” Bonjour mon site apcpedagogie.com mon site de formation” va créer un nouvel objet de chaîne sur le tas de mémoire au lieu de modifier la chaîne initiale à la même adresse de mémoire .
    • Ce comportement va entraver la performance si la même chaîne change plusieurs fois par le remplacement , l’ajout , la suppression ou l’insertion de nouvelles chaînes dans la chaîne initiale .
    • Vous ne devriez pas utiliser cette classe lorsque vous avez besoin d’ajouter seulement deux String ensemble. Il vaut mieux utiliser StringBuilder pour concaténer plus de nombre de chaînes ( au moins quatre) .
      Vous ne devriez pas utiliser cette classe C # seulement pour le remplacement ou le déplacement d’une partie de la chaîne .

  2. Les fonction StringBuilder.
    • 2.1. Append()

      • Il est utilisé pour ajouter le texte spécifié à un objet de chaîne déjà existante .
      • Le Append(String) méthode modifie l’instance existante de la classe ; elle ne retourne pas une nouvelle instance de la classe.
      • Pour cette raison, vous pouvez appeler une méthode ou propriété sur la référence existante et il est inutile d’assigner la valeur de retour à un StringBuilder de l’objet, comme l’illustre l’exemple suivant:
      • bool flag = false;
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("The value of the flag is ").Append(flag).Append(".");
        Console.WriteLine(sb.ToString());
        // L'exemple affiche la sortie suivante:
        //La valeur du flag est faux .

      2.2. AppendLine()

      • AppendLine ajoute des cordes avec un saut de ligne.
      • Vous pouvez utiliser la méthode AppendLine pour insérer une nouvelle ligne dans une chaîne.
      • using System;
        using System.Text;
        
        class Program
        {
            static void Main()
            {
        	// Utiliser AppendLine.
        	StringBuilder var_chaine = new StringBuilder();
        	var_chaine.AppendLine("Un");
        	var_chaine.AppendLine();
        	var_chaine.AppendLine("Deux").AppendLine("Trois");
        
        	// Affichage.
        	Console.Write(var_chaine);
        
        	// AppendLine utilise \ r \ n séquences.
        	Console.WriteLine(var_chaine.ToString().Contains("\r\n"));
            }
        }
        
        Résultat
        
        Un
        
        Deux
        Trois
        True

      2.3. Clear()

      • Supprime tous les caractères du courant StringBuilder instance.
      • using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        
        namespace clear_stringbuilder
        {
            class Program
            {
                static void Main(string[] args)
                {
                    StringBuilder sb = new StringBuilder("Ceci est une chaîne."); // de StringBuilder("Ceci est une chaîne.");
                    Console.WriteLine("{0} ({1} caractères)", sb.ToString(), sb.Length);
        
                    sb.Clear();
                    Console.WriteLine("{0} ({1} caractères)", sb.ToString(), sb.Length);
        
                    sb.Append("Ceci est une seconde chaîne.");
                    Console.WriteLine("{0} ({1} caractères)", sb.ToString(), sb.Length);
                    Console.ReadLine();
                }
            }
            }
        
        //////////////////////////////////////////
        // L'exemple affiche la sortie suivante:
         // Ceci est une chaîne.  (20 caractères)
         // (0 caractères)
         // Ceci est une seconde chaîne.  (28 caractères)
        

      2.4. Replace()

      • Replace() est utilisé pour remplacer un texte ou des caractères dans une chaîne avec un autre texte .
      • Alors, pourquoi Remplacer la méthode de chaîne StringBuilder est plus efficace que de la classe string ?
      • Bien que les deux fonctionnent de manière similaire mais en cas de StringBuilder , contrairement à remplacer de string , aucun nouvel objet modifié créé . Au contraire, il modifie l’objet original.

      2.5. Insert()

      • La méthode Insert ajoute une chaîne ou un objet à une position spécifiée dans l’objet StringBuilder actuel.
      • Cette méthode est utilisée pour insérer une variété de types de données dans un objet StringBuilder en fonction du type de surcharge utilisé .
      • La méthode Insert prend deux paramètres : zéro sur indices dont la valeur doit être inséré et la valeur elle-même.
      • L’exemple suivant illustre l’utilisation de la méthode Insert
      • StringBuilder content = new StringBuilder("apcpedagogiecom");
        content.Insert(11, ".");
        Console.WriteLine(content);
        
        ///////////////
        apcpedagogie.com
        
      • Vous pouvez insérer une chaîne dans un constructeur de chaîne en spécifiant la position de départ et le texte que vous avez besoin d’insérer.
      • En utilisant Append (), vous ne pouvez insérer à la fin de l’objet chaîne de constructeur.
      • Ainsi, la méthode d’insertion est fourni ici pour insérer en toute position de l’objet chaîne de constructeur.

Contenu du chapitre :Les chaines de caractères

1.Les chaînes de caractères
2.c#:StringBuilder
3.QCM
4.Travaux pratiques

Sommaire du cours c#

Riadh HAJJI

Abonnez vous à notre chaîne YouTube gratuitement