HOWTO · Csharp

Agregar nueva línea a la cadena en C#

Aprende tres formas de agregar un salto de línea a una cadena de C#: usar `\n`, `Environment.NewLine` o reemplazar un marcador específico en texto existente.

En esta página

Para agregar un salto de línea a una cadena de C#, incluye el escape de avance de línea \n, usa Environment.NewLine para el entorno actual de .NET o reemplaza un marcador específico en texto existente. Elige la secuencia de salto de línea que corresponda al destino del texto; un formato de archivo o protocolo de red puede exigir una secuencia concreta.

Agregar un salto de línea a una cadena de C# con \n

El escape \n representa un carácter de avance de línea (LF). Colócalo donde deba comenzar la línea siguiente dentro de un literal de cadena. Representa el carácter en sí; no selecciona una convención de salto de línea según el sistema operativo. El escape \r representa un carácter de retorno de carro (CR); úsalo cuando el formato de datos requiera CR o un par CR/LF si especifica ambos caracteres.

Ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

using System;

class Program
{
    static void Main()
    {
        string message = "First line.\nSecond line.";
        Console.WriteLine(message);
    }
}
First line.
Second line.

Esto resulta útil cuando controlas la cadena y quieres un LF explícito. Si otro sistema va a leerla y requiere una convención de salto de línea distinta, usa la secuencia que especifique ese sistema.

Usar Environment.NewLine para saltos de línea específicos de la plataforma

Environment.NewLine proporciona la secuencia de salto de línea del entorno actual de .NET. Úsala al crear texto destinado a ese entorno, como un archivo de texto adaptado a la plataforma. La propiedad no detecta los requisitos de un formato de archivo o protocolo ajeno. Si esos requisitos especifican LF o CR/LF, usa directamente la secuencia requerida, aunque difiera de la convención del entorno actual. Consulta la documentación de Environment.NewLine de Microsoft.

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

using System;

class Program
{
    static void Main()
    {
        string message = "First line." + Environment.NewLine + "Second line.";
        Console.WriteLine(message);
    }
}
First line.
Second line.

Console.WriteLine también termina su salida con un salto de línea. La secuencia incrustada separa las dos partes de message; el salto de línea final lo agrega el método de salida.

Agregar un salto de línea después de crear una cadena

Las cadenas de C# son inmutables, por lo que al cambiar el texto se crea una cadena nueva. String.Replace() devuelve ese nuevo valor; asígnalo de nuevo a la variable si quieres conservar el cambio. El método reemplaza todas las apariciones del marcador especificado, de modo que cada <break> de la entrada se convierte en un salto de línea. Reemplazar un marcador específico es más seguro que reemplazar todos los puntos, porque las oraciones comunes pueden contener signos de puntuación que deben permanecer. La documentación existente de String.Replace() de Microsoft describe el método.

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

using System;

class Program
{
    static void Main()
    {
        string message = "First line.<break>Second line.";
        message = message.Replace("<break>", "\n");
        Console.WriteLine(message);
    }
}
First line.
Second line.

Usa un marcador reservado para este propósito que no pueda aparecer como texto común. Si el reemplazo debe seguir la convención del entorno actual, reemplázalo por Environment.NewLine en lugar de \n. Si estás creando el texto desde el principio, suele ser más sencillo incluir el salto de línea deseado en la cadena original que editarla después.

En conjunto, los tres enfoques cubren las opciones principales: incluir LF en un literal, usar la secuencia del entorno actual o convertir un marcador reservado en texto existente. El formato o protocolo de destino determina cualquier requisito más estricto para el salto de línea; definir una correspondencia entre plataformas y formatos queda fuera del alcance de esta tarea.