Jump to content
×
×
  • Create New...

String & StringBuilder


Wolfae

Recommended Posts

Niveau requis Intermédiaire

Temps estimé : 30 minutes

Bonjour,

 

Dans ce mini-tutoriel un peu avancé, je voudrais vous expliquer un petit détail sur les string qui changera votre vie.. Ou plutôt, la vie de votre programme. Evidemment, presque tous d'entre nous créent une variable string, et la change.

 

Révélation

 

Sachez que le type String (Au moins, en C#) n'est pas modifiable. L'IDE comprend bien sûr quand vous écrivez :

string funky = "funkyemu";
funky += "tuto";
Mais en fait, il génère un nouveau string (Qui devient funky). Bref, un tas de trucs. Et alors ? Alors, c'est lent. Or, si on utilise "StringBuilder" :
StringBuilder funkyb = new StringBuilder("FunkyEmu");
funkyb.Append("tuto");
string funky = funkyb.ToString();
C'est mieux. Preuve vous dites ? Un sysadmin d'un certain site web (qui m'a d'ailleurs poussé à faire ce tutorial) a fait un petit test : Une boucle qui se répète 100 000 fois, et ajoute '.' à un string à chaque fois ; Et un autre programme avec la même boucle, mais qui append '.' à un stringbuilder puis instancie un string (string funky = funkyb.ToString();)

 

Résultat :

 

  • Programme 1 : 20 secondes à peu près.
  • Programme 2 : Une-deux secondes.

 

Bon, je ne connais pas la configuration de son ordinateur, les résultats seront différents mais c'est sûr que Programme 2 > Programme 1 en vitesse. Je vous invite à voir le site web pour des détails sur le truc. Il contient aussi pas mal de tutoriaux avancés. Il est en anglais.

 

J'allais oublier. Vous pouvez faire ça, aussi :

StringBuilder funkyb = new StringBuilder("funkyemu");
funkyb.Insert(0, "Tutoriel");
Ceci insert un string dans le stringBuilder en précisant :
  • L'index (= Position de départ de l'ajout du string..)
  • Le string.

 

Note : L'index est de base 0.

 

Conclusion de ce mini-tutoriel : La classe StringBuilder est une façon beaucoup plus pratique et rapide d'utiliser des strings. Ceci n'est pas seulement pour le C# mais aussi le VB.Net. Veillez à l'utiliser quand vous en avez besoin! (;

 

 

Cordialement,

Heaven Team 2012

Non mudera, potius mori quam foedari.

 

Connaissances : C#, VB.net, JavaScript, PHP

Libre service.

Link to comment
  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.