CodeGym /Cursos /C# SELF /Cadenas y texto: tipo string, trabajar con cadenas

Cadenas y texto: tipo string, trabajar con cadenas

C# SELF
Nivel 2 , Lección 2
Disponible

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;
Crear una variable de tipo string

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;
Crear variables de tipo string

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";
Asignar valor a una variable de tipo string

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";
Crear variables de tipo string

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"
Concatenar dos cadenas

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:

" "
Cadena que contiene un espacio

Por cierto, si no dejas nada entre las comillas (pones dos comillas dobles seguidas), tienes lo que se llama una "cadena vacía":

""
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.

2
Tarea
C# SELF, nivel 2, lección 2
Bloqueada
Creación e inicialización de variables de tipo string
Creación e inicialización de variables de tipo string
2
Tarea
C# SELF, nivel 2, lección 2
Bloqueada
Trabajo con cadenas e interpolación
Trabajo con cadenas e interpolación
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION