1. Aprendiendo más sobre el tipo string
El tipo string es uno de los tipos más usados en C#. Quizá el más usado de todos. Es un tipo genial, porque puedes guardar texto en esas variables. Además, a diferencia de los tipos int y double, los objetos de tipo string tienen un montón de funciones diferentes, y con ellas puedes hacer cosas bastante chulas.
Además, todos los objetos en C# (sí, todos) pueden convertirse al tipo string. O, dicho de forma más precisa, todos los objetos en C# devuelven su representación textual (en forma de cadena). Vamos a volver a este tipo muchas veces (es súper útil e interesante), pero hoy vamos a ver lo básico.
Crear variables de tipo string
El tipo string está hecho para guardar cadenas (texto). Para crear en el código una variable capaz de guardar texto, tienes que usar el comando:
string nombre;
Donde nombre es el nombre de la variable.
Ejemplos:
| Comando | Descripción |
|---|---|
| string name; | Se crea la variable string name |
| string message; | Se crea la variable string message |
| string text; | Se crea la variable string text |
Igual que con los tipos int y double, puedes usar una forma corta para crear varias variables de tipo string:
string nombre1, nombre2, nombre3;
2. Asignar valores a variables de tipo string
Para ponerle un valor a una variable de tipo string, tienes que usar el comando:
nombre = "valor";
Y aquí va la primera diferencia con los tipos que ya conoces. Todos los valores de tipo string son cadenas de texto y tienen que ir entre comillas dobles.
Ejemplos:
| Comando | Nota |
|---|---|
| string name = "Anya"; | La variable name contiene el texto Anya |
| string city = "New York"; | La variable city contiene el texto New York |
| string message = "Hello!"; | La variable message contiene el texto Hello! |
3. Inicializar variables de tipo string
Igual que con los tipos int y double, puedes inicializar variables de tipo string directamente al crearlas. Por cierto, esto lo puedes hacer con cualquier tipo en C#. Así que no vamos a repetirlo más.
string nombre1 = "cadena1", nombre2 = "cadena2";
Ejemplo de crear e inicializar variables
string name = "Anya", city = "New York", message = "Hello!";
Sólo puedes usar variables que tengan valor
El compilador de C# se va a quejar si declaras una variable sin darle ningún valor y luego intentas usarla.
Este código no va a funcionar:
string name;
Console.WriteLine(name); // La variable name no está inicializada. El programa no compilará.
int a;
a++; // La variable a no está inicializada. El programa no compilará.
double x;
double y = x; // La variable x no está inicializada. El programa no compilará.
4. Concatenación — pegar cadenas
Hay algo muy guay y sencillo que puedes hacer con cadenas en C#: puedes pegarlas. Esta operación se llama concatenación. O si te ayuda a recordarlo — Con-Ca-Te-Na-Ción. Aunque mucha gente simplemente lo llama "pegar cadenas" o incluso "sumar cadenas".
Para pegar dos cadenas, tienes que usar el signo +. Es súper fácil:
"valor1" + "valor2"
Ejemplos:
| Comando | Nota |
|---|---|
| string name = "Anya" + "Anya"; | name contiene la cadena AnyaAnya |
| string city = "New York" + "Anya"; | city contiene la cadena New YorkAnya |
| string message = "Hello! " + "Anya"; | message contiene la cadena Hello! Anya |
Y claro, puedes sumar muchas cadenas a la vez, y también sumar cadenas y variables.
Ejemplos:
string name = "Anya"; // name contiene la cadena Anya
string city = "New York"; // city contiene la cadena New York
string message = "Hello!" + city + name + city; // message contiene la cadena Hello!New YorkAnyaNew York
5. Cadenas vacías
En el último ejemplo se ve que el texto en la variable message no se lee bien, porque le faltan espacios. Para poner un espacio (o varios), sólo tienes que escribirlos en el código y ponerlos entre comillas dobles. Es más fácil de lo que parece:
" "
Por cierto, si no dejas nada entre las comillas (pones dos comillas dobles seguidas), tienes lo que se llama una "cadena vacía":
""
Por un lado, existe, pero por otro, si la imprimes en pantalla no sale nada. Y si la pegas con otras cadenas, no pasa nada. Es como el cero, pero para cadenas.
6. Escapar caracteres especiales en cadenas
Ya sabes que las cadenas van entre comillas dobles. Pero ¿qué pasa si quieres poner comillas dentro de la cadena? Si escribes comillas dentro, ¿el compilador no pensará que es el final de la cadena?
Correcto. Lo pensará. Por eso, las comillas dentro del texto se escriben como \". Y el código queda así:
string quote = "Él dijo: \"¡Hola!\"";
Console.WriteLine(quote); // Él dijo: "¡Hola!"
En realidad es un poco más curioso. El símbolo \ se considera especial (de control) dentro de las cadenas. Con él puedes poner "caracteres no imprimibles" como salto de línea, tabulación, etc. Y para poner el propio símbolo \ tienes que escribirlo dos veces.
Aquí tienes las 4 combinaciones más comunes:
| Escritura | Significado |
|---|---|
| \n | Salto de línea (newline) |
| \t | Tabulación (espacio) |
| \\ | Literalmente \ |
| \" | Comillas dentro de la cadena |
Ejemplo:
string multiline = "Cadena 1\nCadena 2";
Console.WriteLine(multiline);
Imprime:
// Cadena 1
// Cadena 2
7. Interpolación de cadenas ($-cadenas)
C# es un lenguaje muy moderno, y te deja meter valores de variables dentro de una cadena fácilmente usando interpolación — sólo tienes que poner el símbolo $ antes de las comillas, y dentro de la cadena usar llaves {}. Esto ya lo sabes.
Pero lo que quizá no sabías es que dentro de las llaves puedes usar expresiones completas ¡e incluso llamar funciones! Ejemplo:
string name = "Olya";
int birthYear = 1999;
string info = $"Me llamo {name}, tengo {2025-birthYear} años.";
Console.WriteLine(info); // Me llamo Olya, tengo 26 años.
Este método hace que el código sea mucho más legible y reduce los errores (y los paréntesis). Hablaremos más de interpolación en otra lección, pero para casos sencillos ya puedes usarlo sin miedo.
8. Funciones propias de las cadenas
El tipo string tiene sus propias funciones (también llamadas métodos). Hay un montón, y hacen la vida del programador mucho más fácil. Hoy vas a conocer algunas (las más básicas). Ejemplo:
| Función | Descripción | Ejemplo de resultado |
|---|---|---|
| str.Length | Longitud de la cadena | "abc".Length → 3 |
| str.ToUpper() | A mayúsculas | "abc".ToUpper() → "ABC" |
| str.ToLower() | A minúsculas | "ABC".ToLower() → "abc" |
| str.Trim() | Quitar espacios al principio y al final | " x y ".Trim() → "x y" |
Ejemplos de trabajar con funciones de cadenas
Todas estas funciones se llaman así: variable.función(...) .
Saber la longitud de una cadena:
string name = "Andrey";
int length = name.Length;
Console.WriteLine(length); // 6, porque tiene 6 letras
Convertir una cadena a mayúsculas o minúsculas:
string original = "Hello";
Console.WriteLine(original.ToUpper()); // PRIVET
Console.WriteLine(original.ToLower()); // privet
Quitar espacios al principio y al final (muy útil cuando escribes desde el teclado):
string messy = " hello ";
Console.WriteLine(messy.Trim()); // "hello"
Cada una de estas funciones devuelve una nueva cadena, la cadena original no cambia.
GO TO FULL VERSION