Esse post não será mais atualizado nesse blog. Para visualizar esse post em seu novo endereço, acesse:
http://milaneze.com.br/post/2009/08/23/C-Classe-StringBuilder-(namespace-SystemText).aspx
O tipo string é imutável, o que significa que sempre que é usado um operador + ou += (concatenação), uma nova string é criada. O tipo StringBuilder (namespace System.Text) manipula informações de strings dinâmicas. Diferente da string comum, o tipo StringBuilder adequa sua capacidade conforme o tamanho da string vai aumentando.
Os métodos mais usados:
- Append
- AppendFormat
- Insert
- Remove
- Replace
Alguns exemplos sobre essa classe e seus principais métodos:
1: class Program
2: { 3: static void Main(string[] args)
4: { 5: StringBuilder buffer = new StringBuilder();
6:
7: buffer.Append(1);
8: buffer.Append(" - Meu"); 9: buffer.Append(" nome"); 10: buffer.Append(" é"); 11:
12: Console.WriteLine("Buffer após Append: " + buffer.ToString()); 13:
14:
15: buffer.AppendFormat(" {0}", "Eric"); 16: buffer.AppendFormat(" - {0}", 1); 17:
18: Console.WriteLine("\nBuffer após AppendFormat: " + buffer.ToString()); 19:
20:
21: StringBuilder buffer2 = new StringBuilder();
22:
23: buffer2.Insert(0, "a");
24: buffer2.Insert(0, 15);
25: buffer2.Insert(0, true);
26:
27: Console.WriteLine("\nBuffer2 após Insert: " + buffer2.ToString()); 28:
29:
30: buffer2.Remove(0, 1);
31: buffer2.Remove(2, 2);
32:
33: Console.WriteLine("\nBuffer2 após Remove: " + buffer2.ToString()); 34:
35:
36: buffer2.Replace("ru", "True "); 37: buffer2.Replace('5', '2'); 38: buffer2.Replace("a", "abc"); 39:
40: Console.WriteLine("\nBuffer2 após Replace: " + buffer2.ToString()); 41:
42:
43: Console.Read();
44: }
45: }
O resultado é mostrado abaixo: