Inicio > Cursos > C# > Strings y Manipulación de Texto
C#Fundamentos de C#Lección 4 de 20

Strings y Manipulación de Texto

Los strings en C# son objetos inmutables de la clase System.String: una vez creados, no se pueden modificar. Cada método que "modifica" un string en realidad crea uno nuevo. Esto es importante para el rendimiento: si concatenas strings en un bucle con el operador +, creas cientos de objetos temporales innecesarios.

StringBuilder resuelve esto: es un buffer mutable que acumula los cambios y solo crea el string final cuando llamas ToString().

C# tiene tres formas de crear strings con variables. La interpolación con $ es la más moderna y recomendada: $"Hola {nombre}, tienes {edad} años". Los verbatim strings con @ te permiten escribir rutas de Windows sin duplicar las barras: @"C:Users ombrearchivo.txt". Y puedes usar cualquier expresión de C# dentro de {}: calcular, llamar métodos, usar operadores ternarios. La interpolación es más legible que String.Format("{0} tiene {1}", nombre, edad).

string saludo = "Hola Mundo";

// Propiedades y métodos básicos
Console.WriteLine(saludo.Length);           // 10
Console.WriteLine(saludo.ToUpper());        // HOLA MUNDO
Console.WriteLine(saludo.ToLower());        // hola mundo
Console.WriteLine(saludo.Contains("Mundo")); // true
Console.WriteLine(saludo.StartsWith("Hola")); // true
Console.WriteLine(saludo.Replace("Mundo", "C#")); // Hola C#
Console.WriteLine(saludo.Trim());           // elimina espacios
Console.WriteLine(saludo.Substring(5));     // Mundo
Console.WriteLine(saludo.Substring(5, 3));  // Mun

// String interpolation (la más recomendada)
string nombre = "Carlos";
int edad = 30;
string msg1 = $"Nombre: {nombre}, Edad: {edad}";
string msg2 = $"El doble es: {edad * 2}";

// Verbatim strings (rutas, regex)
string ruta = @"C:\Users\nombre\archivo.txt";
string multilinea = @"Primera línea
Segunda línea";

// String.Format
string formatted = String.Format("Pi = {0:F2}", 3.14159); // Pi = 3.14

// Split y Join
string csv = "Ana,Bob,Carlos";
string[] nombres = csv.Split(',');
string unido = string.Join(" - ", nombres); // Ana - Bob - Carlos

// StringBuilder para concatenaciones eficientes
var sb = new System.Text.StringBuilder();
for (int i = 0; i < 5; i++) sb.Append($"item{i} ");
string resultado = sb.ToString();
Consejo⚡ Nunca concatenes strings en un bucle con +. Usa StringBuilder. Cada concatenación con + crea un nuevo objeto string en memoria.
← Operadores y ExpresionesCondicionales: if/else y switch →

Practica esta lección

Resuelve los ejercicios del curso de C# en la app, gratis y con corrección automática.

Empezar a practicar