Compartir a través de


Conceptos básicos de cadenas en Visual Basic

El String tipo de datos representa una serie de caracteres (cada uno que representa a su vez una instancia del Char tipo de datos). En este tema se presentan los conceptos básicos de las cadenas en Visual Basic.

Variables de cadena

A una instancia de una cadena se le puede asignar un valor literal que representa una serie de caracteres. Por ejemplo:

Dim MyString As String
MyString = "This is an example of the String data type"

Una String variable también puede aceptar cualquier expresión que se evalúe como una cadena. A continuación se muestran ejemplos:

Dim OneString As String
Dim TwoString As String
OneString = "one, two, three, four, five"

' Evaluates to "two".
TwoString = OneString.Substring(5, 3)
OneString = "1"

' Evaluates to "11".
TwoString = OneString & "1"

Cualquier literal asignado a una String variable debe incluirse entre comillas (""). Esto significa que una comilla contenida en una cadena no se puede representar mediante una comilla. Por ejemplo, el código siguiente produce un error del compilador:

Dim myString As String

' This line would cause an error.
' myString = "He said, "Look at this example!""

Este código produce un error porque el compilador finaliza la cadena después de la segunda comilla y el resto de la cadena se interpreta como código. Para solucionar este problema, Visual Basic interpreta los dos caracteres de comillas de un literal de cadena como uno solo en la cadena. En el ejemplo siguiente se muestra la manera correcta de incluir una comilla en una cadena:

' The value of myString is: He said, "Look at this example!"
myString = "He said, ""Look at this example!"""

En el ejemplo anterior, las dos comillas anteriores a la palabra Look se convierten en una sola comilla en la cadena. Las tres comillas al final de la línea representan una comilla en la cadena y un carácter de terminación de cadena.

Los literales de cadena pueden contener varias líneas:

Dim x = "hello  
world"  

La cadena resultante contiene secuencias de nueva línea que usó en el literal de cadena (vbcr, vbcrlf, etc.). Ya no es necesario usar la solución alternativa anterior:

Dim x = <xml><![CDATA[Hello  
World]]></xml>.Value  

Caracteres en cadenas

Una cadena puede considerarse como una serie de Char valores y el String tipo tiene funciones integradas que permiten realizar muchas manipulaciones en una cadena similar a las manipulaciones permitidas por matrices. Al igual que todas las matrices de .NET Framework, son matrices basadas en cero. Puede hacer referencia a un carácter específico de una cadena a través de la Chars propiedad , que proporciona una manera de acceder a un carácter por la posición en la que aparece en la cadena. Por ejemplo:

Dim myString As String = "ABCDE"
Dim myChar As Char

' The value of myChar is "D".
myChar = myString.Chars(3)

En el ejemplo anterior, la Chars propiedad de la cadena devuelve el cuarto carácter de la cadena, que es D, y lo asigna a myChar. También puede obtener la longitud de una cadena determinada a través de la Length propiedad . Si necesita realizar varias manipulaciones de tipo de matriz en una cadena, puede convertirla en una matriz de Char instancias mediante la ToCharArray función de la cadena. Por ejemplo:

Dim myString As String = "abcdefghijklmnop"
Dim myArray As Char() = myString.ToCharArray

La variable myArray contiene ahora una matriz de Char valores, cada una que representa un carácter de myString.

Inmutabilidad de cadenas

Una cadena es inmutable, lo que significa que su valor no se puede cambiar una vez creado. Sin embargo, esto no impide asignar más de un valor a una variable de cadena. Considere el ejemplo siguiente:

Dim myString As String = "This string is immutable"
myString = "Or is it?"

Aquí se crea una variable de cadena, se asigna un valor y, a continuación, se cambia su valor.

Más concretamente, en la primera línea, se crea una instancia de tipo String y se asigna el valor This string is immutable. En la segunda línea del ejemplo, se crea una nueva instancia y se da el valor Or is it?, y la variable de cadena descarta su referencia a la primera instancia y almacena una referencia a la nueva instancia.

A diferencia de otros tipos de datos intrínsecos, String es un tipo de referencia. Cuando se pasa una variable de tipo de referencia como argumento a una función o subrutina, se pasa una referencia a la dirección de memoria donde se almacenan los datos en lugar del valor real de la cadena. Por lo tanto, en el ejemplo anterior, el nombre de la variable sigue siendo el mismo, pero apunta a una instancia nueva y diferente de la String clase , que contiene el nuevo valor.

Consulte también