Alfredo Paz Zamora
Mas información sobre los strings https://learn.microsoft.com/es-es/dotnet/csharp/programming-guide/strings/
Alejandro López
Gracias Alfredo
Jhoan Sebastián Lopera Gallego
Muchas gracias
Trabajar con cadenas de texto en C# va mucho más allá de imprimir un mensaje en consola. Cuando aprendes a usar strings con interpolación, puedes generar contenido dinámico como perfiles, identificaciones digitales o tarjetas de usuario que se arman solos a partir de variables. Esta es la base que necesitas para conectar datos reales a tu programa.
Qué son los strings y cómo se declaran en C#
Un string es un tipo de dato que guarda cadenas de caracteres, letra por letra, incluyendo los espacios vacíos. Sí, el espacio también ocupa memoria, aunque eso no debería frenarte de usarlo cuando lo necesites.
Para declarar un string en C# siempre debes envolver el texto entre comillas dobles, sin excepción. No solo cuando imprimes con Console.WriteLine, también cuando asignas el valor a una variable.
csharp string nombre = "Ricardo Pérez"; int altura = 168; int edad = 89; string informacion = "Nació en Hidalgo, es estudiante de gastronomía y astronomía";
¿Puedo usar var en lugar de string? Sí. Si escribes
var hobby = "deportista";, C# detecta automáticamente que se trata de una cadena de caracteres y le asigna el tipo string.
Por qué concatenar strings con + se vuelve tedioso
La forma clásica de unir texto con variables es usar el símbolo +, abriendo y cerrando comillas dobles cada vez que quieres insertar un valor. Funciona, pero el código se vuelve difícil de leer cuando tienes muchas variables.
Escribir una identificación completa así implica abrir comillas, sumar la variable, cerrar comillas, abrir de nuevo, y repetir. Para tres o cuatro datos ya es incómodo. Para una tarjeta con seis campos, una pesadilla.
Cómo funciona la interpolación de strings con $
La interpolación de strings te permite insertar variables directamente dentro del texto usando llaves {}. Solo necesitas anteponer el símbolo $ antes de las comillas dobles para activarla.
csharp string tarjetaIdentificacion = $"La información de {nombre} es la siguiente:\n" + $"Su edad es {edad}\n" + $"Su altura es de {altura} centímetros\n" + $"Información relevante: {informacion}\n" + $"Además, su hobby es de {hobby}";
Las llaves le indican a C# que ahí debe imprimir el valor de la variable, no el texto literal. El resultado es código mucho más limpio y fácil de mantener.
¿Qué hace el símbolo $ antes de un string? Activa la interpolación, es decir, le dice a C# que dentro de ese string puedes incluir variables entre llaves
{}y sus valores se reemplazarán automáticamente al imprimir.
Cómo dar formato al texto con saltos de línea
Cuando imprimes una tarjeta con varios campos, todo en una sola línea queda ilegible. Para separar visualmente la información usas \n, que es el carácter especial de salto de línea.
\n crea un nuevo renglón dentro del string.\n para dejar líneas en blanco.Por ejemplo, al imprimir la tarjeta de Ricardo Pérez con altura 168 centímetros y edad 89 años, cada dato aparece en su propia línea: nombre arriba, edad debajo, altura después y así sucesivamente. La consola muestra una credencial limpia y legible.
Por qué la interpolación es tan importante en programación real
En un entorno profesional rara vez escribes los datos a mano. Lo común es conectarte a una base de datos, extraer la información de un usuario y mostrarla dinámicamente en una página o reporte. La interpolación es justo el puente entre los datos almacenados y el texto que ve el usuario final.
Imagina que tu aplicación genera credenciales para miles de usuarios. No vas a escribir el nombre y la edad de cada uno. Vas a tener variables que se llenan con consultas a la base de datos, y la interpolación arma la tarjeta automáticamente para cada persona.
Este patrón es exactamente el que usarías al construir páginas de perfil, recibos, facturas o cualquier contenido que mezcle texto fijo con datos variables. Aprenderlo desde las raíces hace que el salto a proyectos reales sea natural.
¿Ya probaste a construir tu propia identificación digital con tus datos? Cuéntame en los comentarios cómo le dicen a la cédula o identificación oficial en tu país.
Alfredo Paz Zamora
Mas información sobre los strings https://learn.microsoft.com/es-es/dotnet/csharp/programming-guide/strings/
Alejandro López
Gracias Alfredo
Jhoan Sebastián Lopera Gallego
Muchas gracias
++STRINGS EN C#++
Cadenas y literales de cadena
Una cadena es un objeto de tipo String cuyo valor es texto. Internamente, el texto se almacena como una colección secuencial de solo lectura de objetos Char. No hay ningún carácter que finalice en NULL al final de una cadena de C#; por lo tanto, la cadena de C# puede contener cualquier número de caracteres nulos insertados ("\0"). La propiedad Length de una cadena representa el número de objetos Char que contiene, no el número de caracteres Unicode. Para obtener acceso a los puntos de código Unicode individuales de una cadena, use el objeto StringInfo.
++Cadena frente System.String++
En C#, la palabra clave string es un alias de String. Por lo tanto, String y string son equivalentes, aunque se recomienda usar el alias proporcionado string, ya que funciona incluso sin using System;. La clase String proporciona muchos métodos para crear, manipular y comparar cadenas de forma segura. Además, el lenguaje C# sobrecarga algunos operadores para simplificar las operaciones de cadena comunes.
/* ***** Ejemplo 1 ***** */ // Concatenacion de variables para crear un string mas amplio al final con el operador + string number = "1"; string street = "Palo Alto St"; string city = "California"; string address = street + " " + number + " " + city; Console.WriteLine(address); // OUTPUT: Palo Alto St 1 California
/* ***** Ejemplo 2 ***** */ string adress1 = ""; // string.empty Console.WriteLine(adress1); // Console vacio bool isEmpty; // Validacion de string vacio con string.Empty if (adress1 == string.Empty) isEmpty = true; else isEmpty = false; Console.WriteLine(isEmpty); // OUTPUT: // OUTPUT: True
/* ***** Ejemplo 3 ***** */ string adress2 = ""; // string.empty Console.WriteLine(adress2); bool isEmpty2; // Validacion de string vacio con string.IsNullOrEmpty => Es recomendado usar esta funcion para validar if (string.IsNullOrEmpty(adress2)) isEmpty2 = true; else isEmpty2 = false; Console.WriteLine(isEmpty2); // OUTPUT: // OUTPUT: True
/* ***** Ejemplo 5 ***** */ string adress4 = " California"; // Esta funcion no solo valida si la cadena es vacia, tambien tambien valida los espacios de la cadena con string.IsNullOrWhiteSpace("lo que sea") bool validAddress1 = string.IsNullOrWhiteSpace(adress4); Console.WriteLine(validAddress1); // OUTPUT: True
/* ***** Ejemplo 6 ***** */ string textoDeEscape = "Para saber que \"Cambios\" podemos realizar."; // En este caso para escapar las comillas usamos el backslash \ // Escapar caracteres especiales en strings con backslash - En este casoe scapamos las comillas en "Cambios" Console.WriteLine(textoDeEscape); // OUTPUT: Para saber que "Cambios" podemos realizar.
/* ***** Ejemplo 7 ***** */ // Si quisieramos escribir en un string \Usuarios\German\Documentos\Datos tendriamos que escapar cada backslach con otro backslash antecedido string rutaDatos = "\\Usuarios\\German\\Documentos\\Datos"; // \\string Console.WriteLine(rutaDatos);
/* ***** Ejemplo 8 ***** */ // Con arroba @ podemos escapar todos loscaracteres especiales de un string string rutaAlterna = @"\Usuarios\OtrosUsuarios\Publico\Documentos\Datos"; Console.WriteLine(rutaAlterna); // OUTPUT: \Usuarios\OtrosUsuarios\Publico\Documentos\Datos
/* ***** Ejemplo 9 ***** */ // Usando string interpolation string number = "1"; string street = "Palo Alto St"; string city = "California"; string location2 = $"{street} {number} {city}"; Console.WriteLine(location2); // OUTPUT: Palo Alto St 1 California
/* ***** Ejemplo 10 ***** */ string number = "1"; string street = "Palo Alto St"; string city = "California"; // Concatenando variables de tipo string con string.Format. Cada indice define la posicion del string en su orden string location3 = string.Format("{0} {1} {2}", street, number, city); Console.WriteLine(location3); // OUTPUT:
Angel Javier Sanchez Tenjo
Console.WriteLine("Ricardo Pérez ID!"); int altura = 168; int edad = 89; string nombre = "Ricardo Perez"; string informacion = "Nació en Hidalgo, es estudiante de gastronomía y astronomía"; var hobby = "deportista"; string tarjetaDeIdentificacion = $"La información de {nombre} es la siguiente \n Su edad es {edad}\n" + $"su altura es de {altura} cms\n Información relevante {informacion} \n además, su hobby es de: {hobby} "; Console.WriteLine(tarjetaDeIdentificacion);
Jhoan Sebastián Lopera Gallego
Buen trabajo
Diego Fernando Pallares Ramirez
Hola porque pone $ antes de las comillas? gracias.
Angel Javier Sanchez Tenjo
Interpolación de cadenas mediante $
El carácter especial $ identifica un literal de cadena como una cadena interpolada. Una cadena interpolada es un literal de cadena que puede contener expresiones de interpolación.
Cuando una cadena interpolada se resuelve en una cadena de resultado, los elementos con expresiones de interpolación se reemplazan por las representaciones de cadena de los resultados de la expresión.
La interpolación de cadenas proporciona una sintaxis más legible y conveniente de dar formato a las cadenas. Es más fácil de leer que el formato compuesto de cadenas. Compare el ejemplo siguiente donde se usan ambas características para producir el mismo resultado:
string name = "Mark"; var date = DateTime.Now; // Composite formatting: Console.WriteLine("Hello, {0}! Today is {1}, it's {2:HH:mm} now.", name, date.DayOfWeek, date); // String interpolation: Console.WriteLine($"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now."); // Both calls produce the same output that is similar to: // Hello, Mark! Today is Wednesday, it's 19:40 now.
Olga Nataly Moreno Fandiño
Al escribir la "s" y oprimir un tab, se escribre automaticamente la palabra _String _
David Elias Gatica Morales
Gracias
Recordemos que usar $ en C# es también conocido como usar la función formato. Sirve para optimizar código reduciendo considerablemente la cantidad de líneas del mismo que escribamos y agilizarlo.Por ej:
Esteban Cerda Román
Bien jóven, RIcardo.
Interesante la $"interpolación"
Daniel Antonio Vilches Vilches
Debo decir que este curso esta muy bien explicado
Jader Castro
Lo que explica el docente se le llama interpolación de cadenas y lo combina con el uso de literales.
Interpolación, cuando usa: $
Literales, cuando usa: \
Misael Gomez
Carlos andres Orduz
me pueden explicar por favor para que sirvve \n. gracias
Tania Ortiz
Es un salto de línea.
Felix Ricky Llanos Bonifacio
Es igual a la tecla enter del teclado
Daniel Yepes
Chicos en alguna oportunidad hice un curso basico de C# y tenia muchas llaves y clases, pero veo que aca eso no se usa, cambiaron la sintaxis?
Ludwin Eduardo Escobar Flores
Aun se utilizan pero seguramente se verán en temas más avanzados, las llaves se utilizan en condicionales, ciclos y otros elementos y las clases seguramente vendrán en otros temas
Jesús García
En esta versión de visual studio (2022) ya no coloca las llaves de "main" o del programa principal, aparte de las librerías ya no las porne pero están ya "puestas" aunque no se ven, están de forma implícita.
Jorge Alberto Mercadillo Flores
en el pais de El Salvador al documento de cada persona le llamamos DUI = Documento Unico de Identidad
Sergio Daniel Flamenco
Practica de Manipulación de Strings en C#
using System;
namespace Strings
{
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("Hello World!");
Console.WriteLine("Sergio Flamenco ID!");
int altura = 168;
int edad = 21;
string nombre = "Sergio Flamenco";
string informacion = "Nació en San Salvador, es estudiante de Ingenería en Sistemas Informáticos";
var hobby = "Futbolista";
string tarjetaDeIdentificacion = $"La información de {nombre} es la siguiente \n Su edad es {edad}\n " +
$"su altura es de {altura} cms\n Información relevante {informacion} \n además su hobby es de: {hobby} ";
Console.WriteLine(tarjetaDeIdentificacion);
}
}
}
UCuno usuariouno
Con """ ... """ (raw string literal) puedes:
\n, \t, \, \". además agregas la concatenacion con $ y tu codigo queda mucho mas limpio y facil de leer
Cristian Prykhodko
Hola, por que el profesor uso el simbolo $ en la linea de codigos?. Saludos
Starling Germosen
Las cedulas dicen la profesión y deportista es una profesión
José Manuel Brito Paula
Si los valores numéricos no utilizados para ser cálculos, lo mas recomendable es seguir utilizando el valor "String" utilizados para realizar cálculos
Cristian candia
Para que el output se vea mas bonito:
string tarjetaDeIdentificacion = $"La informacion de la persona es: \n" + $"Nombre: {nombre} \n" + $"Edad: {edad} \n" + $"Altura: {altura} \n" + $"DNI: {dni} \n" + $"Direccion: {direccion} \n" + $"Fecha de nacimiento: {fechaNacimiento} \n" + $"Hobby: {hobby}"; Console.WriteLine(tarjetaDeIdentificacion);
En C#, los strings son objetos que representan secuencias de caracteres. Aquí hay algunas operaciones y características comunes relacionadas con strings en C#:
Declaración de String:
string miString = "Hola, mundo!";
Concatenación de Strings:
string nombre = "Juan"; string apellido = "Pérez"; string nombreCompleto = nombre + " " + apellido; // Resultado: "Juan Pérez"
Interpolación de Strings:
string nombre = "Maria"; string mensaje = $"Bienvenido, {nombre}"; // Resultado: "Bienvenido, Maria"
Longitud de un String:
string miString = "Hola"; int longitud = miString.Length; // Resultado: 4
Comparación de Strings:
string str1 = "abc"; string str2 = "ABC"; bool sonIguales = String.Equals(str1, str2, StringComparison.OrdinalIgnoreCase); // Resultado: true
Mayúsculas y Minúsculas:
string minusculas = "texto en minúsculas"; string mayusculas = minusculas.ToUpper(); // Resultado: "TEXTO EN MINÚSCULAS" string minusculasNuevamente = mayusculas.ToLower(); // Resultado: "texto en minúsculas"
Acceso a Caracteres Individuales:
string palabra = "Hola"; char primerCaracter = palabra[0]; // Resultado: 'H'
Métodos Útiles:
Substring: Devuelve una subcadena de la cadena original.IndexOf: Devuelve la posición de la primera aparición de un carácter o subcadena.Replace: Reemplaza una subcadena con otra.Trim: Elimina los espacios en blanco al principio y al final de una cadena.Estas son solo algunas de las operaciones básicas que puedes realizar con strings en C#. Los strings son inmutables en C#, lo que significa que no se pueden modificar una vez creados. En su lugar, las operaciones en strings generan nuevos strings.