HOWTO · Csharp
Retour chariot en C#
Dans cet article, nous allons apprendre le retour chariot dans une chaîne en C#.
Sur cette page
En C#, utilisez Console.WriteLine() pour écrire dans la console, \n dans une chaîne pour insérer un saut de ligne (LF) et Environment.NewLine pour construire du texte adapté à la plateforme actuelle. Le retour chariot (\r) et le saut de ligne (\n) sont deux caractères de contrôle distincts ; choisissez la séquence attendue par le format de fichier ou le système destinataire.
Utiliser Console.WriteLine() pour écrire une ligne ou une ligne vide
Console.WriteLine(value) écrit la valeur, puis le terminateur de ligne de la console. Sans paramètre, la méthode écrit uniquement un terminateur de ligne, ce qui crée une ligne vide entre les textes qui l’entourent. Le terminateur est ajouté au moment de l’écriture ; il ne modifie pas la chaîne transmise à la méthode.
Exécutez cet exemple :
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
using System;
class Program
{
static void Main()
{
Console.WriteLine("First line");
Console.WriteLine();
Console.WriteLine("Second line");
}
}
First line
Second line
Insérer \n dans une chaîne C#
Dans un littéral de chaîne C# ordinaire, \n est une séquence d’échappement qui représente le caractère de saut de ligne (LF). Placez-la à l’endroit voulu : le compilateur stocke le caractère, et non les deux caractères visibles barre oblique inverse et n. Cette méthode est pratique pour le texte que vous écrivez directement. \x0A permet aussi d’écrire ce même caractère, mais \n est généralement plus facile à repérer. Les séquences d’échappement ne sont pas interprétées dans une chaîne verbatim ; utilisez donc un littéral de chaîne ordinaire pour cette forme.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
using System;
class Program
{
static void Main()
{
string message = "First line\nSecond line";
Console.WriteLine(message);
}
}
First line
Second line
Utiliser Environment.NewLine pour le saut de ligne de la plateforme
Utilisez Environment.NewLine lorsque vous construisez une chaîne dont les séparateurs de ligne doivent suivre l’environnement actuel. Cette propriété fournit la séquence de saut de ligne de cet environnement. Elle convient aux fichiers texte et aux messages construits pour une plateforme donnée, mais ne rend pas le texte compatible avec tous les protocoles : des formats comme HTTP, certaines variantes de CSV ou un service distant peuvent imposer leurs propres règles de fin de ligne. De son côté, Console.WriteLine() ajoute un terminateur de ligne lors de l’écriture ; si vous ajoutez Environment.NewLine à une chaîne, puis appelez WriteLine(), un saut de ligne supplémentaire peut donc être ajouté à la fin.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
using System;
class Program
{
static void Main()
{
string message = "First line" + Environment.NewLine + "Second line";
Console.WriteLine(message);
}
}
First line
Second line
Choisir \n, \r, \r\n ou \x0A selon le contexte
\n désigne le saut de ligne (LF), tandis que \r désigne le retour chariot (CR). Historiquement, CR ramène au début de la ligne et LF passe à la ligne suivante. Les systèmes de texte utilisent souvent LF seul comme fin de ligne, alors que la convention Windows utilise généralement CRLF (\r\n). Certains systèmes plus anciens utilisaient aussi CR seul. Il s’agit de conventions, et ces écritures ne sont pas interchangeables : choisissez la représentation exigée par la destination, notamment pour un protocole ou un format de fichier. Dans un littéral de chaîne C#, \x0A représente le même caractère LF que \n ; pour les sauts de ligne ordinaires, préférez \n, plus explicite. N’utilisez Environment.NewLine que si la convention de la plateforme est bien celle qu’il vous faut.
Convertir les sauts de ligne C# en <br> HTML dans ASP.NET
Pour afficher du texte avec des sauts de ligne en HTML, encodez d’abord le texte pour HTML, puis remplacez les séquences de saut de ligne par <br>. Traitez CRLF avant CR ou LF seuls afin qu’une fin de ligne Windows produise un seul saut HTML. L’exemple utilise uniquement un texte fixe ; pour du texte provenant d’une requête ou fourni par l’utilisateur, conservez l’étape d’encodage afin d’empêcher l’injection de balisage. Dans ASP.NET, privilégiez les mécanismes habituels d’encodage de sortie du framework pour la technologie de vue utilisée.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
using System;
using System.Net;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string input = "First line\r\nSecond <line>";
string encoded = WebUtility.HtmlEncode(input);
string html = Regex.Replace(encoded, @"\r\n|\r|\n", "<br>");
Console.WriteLine(html);
}
}
First line<br>Second <line>