English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Cadena de caracteres de C# (String)

En C#, las cadenas de texto son una serie de caracteres utilizados para representar texto. Puede ser un carácter, una palabra o un párrafo largo encerrado entre comillas dobles. A continuación se muestra el texto literario.

"S"
"String"
"This is a string."

C# proporciona el tipo de datos String para almacenar literals de cadena. Se puede declarar una variable de tipo cadena y asignar literals de cadena, como se muestra a continuación.

string ch = "S";
string word = "String";
string text = "This is a string.";

El tamaño máximo de un objeto de cadena en la memoria es2GB, aproximadamente10billones de caracteres. Sin embargo, en la práctica, depende menos del CPU y la memoria de la computadora.

Hay dos métodos para declarar variables de cadena en C#. Usar la clase System.String y la palabra clave string. Ambos son idénticos, sin diferencias.

string str1 = "Hello"; // Usar la palabra clave de cadena
 
String str2 = "Hello"; // Usar la clase System.String

En C#, las cadenas de texto son una colección o array de caracteres. Por lo tanto, se puede crear una cadena utilizando un array de char, y también se puede acceder a la cadena como un array de char.

char[] chars = {'H','e','l','l','o'};
string str1 = new string(chars);  
String str2 = new String(chars); 
foreach (char c in str1)
{
    Console.WriteLine(c);
}

Caracteres especiales

El texto del mundo real puede contener cualquier carácter. En C#, debido a que las cadenas de texto se encierran entre comillas dobles, no pueden contener (”) dentro de la cadena. A continuación, se muestra un error en tiempo de compilación.

string text = "This is a "string" in C#.";

C# incluye el carácter de escape \ (barras invertidas) antes de estos caracteres especiales en la cadena.

string text = "This is a \
string str = "xyzdef\\rabc";
string path = "\\\\mypc\\ shared\\project";

Pero, añadir antes de cada carácter especial puede ser muy tedioso. Las cadenas que comienzan con el prefijo @ se deben considerar como literals y no se pueden escapar cualquier carácter.

string str = @"xyzdef\rabc";
string path = @"\\mypc\shared\project";
string email = @"[email protected]";

Se utiliza @ y \ para declarar una cadena de múltiples líneas.

multi line ",
string";

Por favor, utilice barras invertidas para permitir la aparición de comillas dobles en las cadenas. El símbolo @ solo se aplica a caracteres especiales en C#.

string text = @"This is a \ // error
string text = @"This is a \ // error
string text = "This is a \ // válido

concatenación de cadenas

Múltiples cadenas pueden conectarse usando + operador de conexión.

string name = "Mr."; + "James " + "Bond" + "Code: 00"7";
 
string firstName = "James";
string lastName = "Bond";
string code = "007";
 
string agent = "Mr."; + firstName + "" + lastName + "Code: " + code;

Las cadenas en C# son inmutables. Esto significa que son de solo lectura y no se pueden cambiar una vez creadas en la memoria. Cada vez que se concatenan cadenas, el CLR de .NET crea una nueva ubicación de memoria para la cadena concatenada. Por lo tanto, si se concatenan cinco cadenas o más, se recomienda usar StringBuilder en lugar de cadenas.

interpolación de cadenas

La interpolación de cadenas es una mejor manera de conectar cadenas. Usamos+Los símbolos conectan la variable de cadena con la cadena estática.

C#6Incluye un carácter especial $, utilizado para identificar la cadena de interpolación. La cadena de interpolación es una mezcla de cadena estática y variable de cadena, donde la variable de cadena debe colocarse entre llaves {}.

string firstName = "James";
string lastName = "Bond";
string code = "007";
 
string fullName = "$Mr. {firstName} {lastName}, Code: {code}";

En el ejemplo de interpolación mencionado anteriormente, $ representa la interpolación de cadenas, mientras que {} incluye las variables de cadena que se deben combinar con la cadena.

Use dos corchetes dobles "{{" o "}}" para incluir { o } en una cadena.