URL: [Link]
aspx
STRINGBUILDER
El objeto String es inmutable. Cada vez que se usa uno de los mtodos de la clase [Link], se crea un nuevo objeto de cadena en la memoria, que necesita una nueva asignacin de espacio para ese objeto nuevo. En las situaciones en que sea necesario realizar modificaciones repetidas en una cadena, la sobrecarga asociada a la creacin de un nuevo objeto String puede disminuir el rendimiento. La clase [Link] se puede utilizar para modificar una cadena sin crear un nuevo objeto. Por ejemplo, el uso de la clase StringBuilder puede mejorar el rendimiento al concatenar muchas cadenas en un bucle.
Crear instancias de un objeto StringBuilder
Se puede crear una nueva instancia de la clase StringBuilder inicializando la variable con uno de los mtodos de constructor sobrecargados, como se muestra en el ejemplo siguiente.
Dim MyStringBuilder As New StringBuilder("Hello World!")
Configurar la capacidad y la longitud
Aunque StringBuilder es un objeto dinmico que permite expandir el nmero de caracteres de la cadena que encapsula, se puede especificar un valor para el nmero mximo de caracteres que puede contener. Este valor se conoce como la capacidad del objeto y no se debe confundir con la longitud de la cadena que contiene el objeto StringBuilder actual. Por ejemplo, podra crear una nueva instancia de la clase StringBuilder con la cadena "Hola" que tiene una longitud de 5, y podra especificar que el objeto tiene una capacidad mxima de 25. Al modificar StringBuilder, no reasigna el tamao para s mismo hasta que se alcance la capacidad. Cuando sucede esto, el nuevo espacio se asigna automticamente y se dobla la capacidad. La capacidad de la clase StringBuilder se puede especificar con uno de los constructores sobrecargados. En el ejemplo siguiente se especifica que el objeto MyStringBuilder se puede expandir hasta un mximo de 25 espacios.
Dim MyStringBuilder As New StringBuilder("Hello World!", 25)
URL: [Link]
Append
El mtodo Append se puede usar para agregar texto o la representacin de cadena de un objeto al final de una cadena representada por la StringBuilder actual. En el ejemplo siguiente se inicializa una StringBuilder en "Hello World" y, a continuacin, se agrega texto al final del objeto. El espacio se asigna automticamente segn sea necesario.
Dim MyStringBuilder As New StringBuilder("Hello World!") [Link](" What a beautiful day.") [Link](MyStringBuilder) ' The example displays the following output: ' Hello World! What a beautiful day.
AppendFormat
El mtodo [Link] agrega texto al final del objeto StringBuilder. Admite la caracterstica de formatos compuestos (para obtener ms informacin, vea Formatos compuestos) llamando a la implementacin de IFormattable del objeto u objetos a los que se va a dar formato. Por tanto, acepta las cadenas de formato estndar para valores numricos, de fecha y hora, y de enumeracin, las cadenas de formato personalizado para valores numricos y de fecha y hora, y las cadenas de formato definidas para los tipos personalizados. (Para obtener informacin sobre el formato, vea Aplicar formato a tipos.) Se puede usar este mtodo para personalizar el formato de variables y anexar esos valores a StringBuilder. En el ejemplo siguiente se usa el mtodo AppendFormat para colocar un valor entero con formato de valor de divisa al final de un objeto StringBuilder.
Dim MyInt As Integer = 25 Dim MyStringBuilder As New StringBuilder("Your total is ") [Link]("{0:C} ", MyInt) [Link](MyStringBuilder) ' The example displays the following output: ' Your total is $25.00
URL: [Link]
Convertir un objeto StringBuilder en una cadena
Debe convertir el objeto StringBuilder en un objeto String antes de poder pasar la cadena representada por el objeto StringBuilder a un mtodo que tenga un parmetro String o mostrarlo en la interfaz de usuario. Puede hacer esta conversin llamando al mtodo [Link]. En el ejemplo siguiente se llama a varios mtodos de StringBuilder y, a continuacin, se llama al mtodo [Link] para mostrar la cadena.
Imports [Link] Module Example Public Sub Main() Dim sb As New StringBuilder() Dim flag As Boolean = True Dim spellings() As String = { "recieve", "receeve", "receive" } [Link]("Which of the following spellings is {0}:", flag) [Link]() For ctr As Integer = 0 To [Link](0) [Link](" {0}. {1}", ctr, spellings(ctr)) [Link]() Next [Link]() [Link]([Link]()) End Sub End Module ' The example displays the following output: ' Which of the following spellings is True: ' 0. recieve ' 1. receeve ' 2. receive