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();
Practica esta lección
Resuelve los ejercicios del curso de C# en la app, gratis y con corrección automática.
Empezar a practicar