Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.