Usando a Classe StringBuilder
This page is specific to:.NET Framework Version:
2.03.5
Este é um conteúdo traduzido por máquina.
Guia do Desenvolvedor do .NET Framework
Usando a Classe StringBuilder

O objeto String é imutável. Toda vez que você usa um dos métodos na classe System.String, você cria um novo objeto de seqüência de caracteres na memória, que requer uma nova alocação de espaço para esse novo objeto. Em situações que você precisa realizar repetidas modificações em uma seqüência de caracteres, a sobrecarga associada à criação de um novo objeto String pode consumir muitos recursos. A classe System.Text..::.StringBuilder pode ser utilizada quando você desejar modificar uma seqüência de caracteres sem criar um novo objeto. Por exemplo, usando-se a classe StringBuilder pode-se melhorar o desempenho da concatenação de várias seqüências de caracteres juntas em um loop.

Instanciar um objeto StringBuilder

Você pode criar uma nova instância da classe StringBuilder inicializando sua variável com um dos métodos sobrecarregados do construtor, conforme ilustrado no exemplo a seguir.

Dim MyStringBuilder As New StringBuilder("Hello World!")


Definindo a Capacidade e Comprimento

Embora o StringBuilder seja um objeto dinâmico que lhe permite expandir o número de caracteres da Cadeia de Caracteres que ele encapsula, você pode especificar um valor para o número máximo de caracteres que ele pode armazenar. Esse valor é chamado a capacidade do objeto e não deve ser confundida com o comprimento da Cadeia de Caracteres que contém o atual StringBuilder. Por exemplo, você pode criar uma Novo instância da classe StringBuilder com a Cadeia de Caracteres "Hello", que tem um comprimento de 5, e você pode especificar que o objeto tem uma capacidade máxima de 25. Quando você Modificar StringBuilder, ela não realoca o seu tamanho  até que a capacidade seja atingida. Quando isso ocorre, o novo espaço é alocado automaticamente e a capacidade é dobrada. Você pode especificar a capacidade da classe  StringBuilder usando um dos construtores sobrecarregados. O exemplo a seguir especifica que o objeto MyStringBuilder pode ser expandido para um máximo de 25 espaços.

Dim MyStringBuilder As New StringBuilder("Hello World!", 25) 


Além disso, você pode usar a propriedade de leitura/escrita Capacity para definir o comprimento máximo de seu objeto. O exemplo a seguir usa a propriedade Capacity para definir o comprimento máximo de objeto.

O método EnsureCapacity pode ser usado para verificar a capacidade do atual StringBuilder. Se a capacidade for maior do que o valor passado, nenhuma alteração é feita; no entanto, se a capacidade for menor do que o valor passado, a capacidade atual é alterada para coincidir com o valor passado.

A propriedade Length também pode ser exibida ou definida. Se você definir a propriedade Length para um valor que é maior do que a propriedade Capacity, a propriedade Capacity é automaticamente alterada para o mesmo valor que a propriedade Length. Configurar a propriedade Length com um valor que seja menor que o comprimento da seqüência de caracteres dentro do StringBuilder atual diminuirá a seqüência de caracteres.

Modificando a Sequência de Caracteres do StringBuilder

A tabela a seguir lista os métodos que podem ser usados para modificar o conteúdo de um StringBuilder.

Nome do Método

Uso

StringBuilder..::.Append

Acrescenta informações ao final do StringBuilder atual.

StringBuilder..::.AppendFormat

Substitui um especificador de formato passado em uma seqüência de caracteres com texto formatado.

StringBuilder..::.Insert

Insere uma seqüência de caracteres ou um objeto no índice especificado do StringBuilder atual.

StringBuilder..::.Remove

Remove um número determinado de caracteres do StringBuilder atual.

StringBuilder..::.Replace

Substitui um caractere especificado em um índice especificado.

Append

O método Append pode ser usado para adicionar um representação de seqüência de caracteres de um objeto ou texto ao final de uma seqüência de caracteres representada pelo StringBuilder atual. O exemplo a seguir inicializa um StringBuilder com "Hello World " e, em seguida, acrescenta algum texto ao final do objeto. Espaço é alocado automaticamente conforme necessário.

Dim MyStringBuilder As New StringBuilder("Hello World!")
MyStringBuilder.Append(" What a beautiful day.")
Console.WriteLine(MyStringBuilder)
' The example displays the following output:
'       Hello World! What a beautiful day.


AppendFormat

O método AppendFormat adiciona texto ao final do StringBuilder, mas também implementa a interface IFormattable e, portanto, aceita as seqüências de caracteres de formato padrão descritas na seção formatando seções. Você pode usar esse método para personalizar o formato das variáveis e acrescentar seus valores a um StringBuilder. O exemplo a seguir usa o método AppendFormat para colocar um valor inteiro formatado como um valor de moeda no final de um StringBuilder.

Dim MyInt As Integer = 25
Dim MyStringBuilder As New StringBuilder("Your total is ")
MyStringBuilder.AppendFormat("{0:C} ", MyInt)
Console.WriteLine(MyStringBuilder)
' The example displays the following output:
'     Your total is $25.00  


Inserir

O método Insert adiciona uma seqüência de caracteres ou objeto em uma posição especificada no StringBuilder atual. O exemplo a seguir utiliza esse método para inserir uma palavra na sexta posição de um StringBuilder.

Dim MyStringBuilder As New StringBuilder("Hello World!")
MyStringBuilder.Insert(6, "Beautiful ")
Console.WriteLine(MyStringBuilder)
' The example displays the following output:
'      Hello Beautiful World!


Remove

Você pode usar o método Remove para remover um número especificado de caracteres do StringBuilder atual, começando em um índice com base zero especificado. O exemplo a seguir usa o método Remove para diminuir um StringBuilder.

Dim MyStringBuilder As New StringBuilder("Hello World!")
MyStringBuilder.Remove(5, 7)
Console.WriteLine(MyStringBuilder)
' The example displays the following output:
'       Hello


Replace

O método Replace pode ser usado para substituir caracteres contidos no objeto StringBuilder por outro caractere especificado. O exemplo a seguir usa o método Replace para procurar em um objeto StringBuilder todas as ocorrências do caractere de ponto de exclamação (!), e substituí-los pelo caractere ponto de interrogação (?).

Dim MyStringBuilder As New StringBuilder("Hello World!")
MyStringBuilder.Replace("!"c, "?"c)
Console.WriteLine(MyStringBuilder)
' The example displays the following output:
'       Hello World?


Consulte também

Referência

Outros recursos

© 2010 Microsoft Corporation. Todos os direitos reservados.   Termos de Uso | Marcas Comerciais | Política de Privacidade
Page view tracker
Rate the Lightweight library
x
Lightweight builds on ScriptFree (loband) by adding features you've requested: a SearchBox and default code language selection.
Do you like the SearchBox?
Do you like the tabbed code blocks?
How useful is this topic?
Tell us more.
Thanks
x
You're helping to improve MSDN Online.
Feedback
Switch View
Classic
Lightweight Beta
ScriptFree
Switch View