HOWTO · Csharp
Wagenrücklauf in C#
In diesem Artikel lernen wir den Wagenrücklauf in einer Zeichenfolge in C# kennen.
Auf dieser Seite
Verwenden Sie in C# Console.WriteLine(), wenn Sie in die Konsole schreiben, \n innerhalb einer Zeichenfolge, wenn Sie einen Zeilenvorschub benötigen, und Environment.NewLine, wenn Sie Text für die aktuelle Plattform erstellen. Ein Wagenrücklauf (\r) und ein Zeilenvorschub (\n) sind unterschiedliche Steuerzeichen. Verwenden Sie die Zeichenfolge, die das Dateiformat oder das empfangende System erwartet.
Mit Console.WriteLine() eine Zeile oder Leerzeile ausgeben
Console.WriteLine(value) gibt den Wert gefolgt vom Zeilenabschluss der Konsole aus. Die parameterlose Form gibt nur einen Zeilenabschluss aus und erzeugt dadurch zwischen umgebendem Text eine Leerzeile. Der Zeilenabschluss wird erst bei der Ausgabe angefügt; die an die Methode übergebene Zeichenfolge wird nicht verändert.
Führen Sie dieses Beispiel aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
using System;
class Program
{
static void Main()
{
Console.WriteLine("First line");
Console.WriteLine();
Console.WriteLine("Second line");
}
}
First line
Second line
\n in eine C#-Zeichenfolge einfügen
In einem gewöhnlichen Zeichenfolgenliteral von C# ist \n eine Escape-Sequenz für das Zeilenvorschubzeichen. Setzen Sie sie an die Stelle, an der der Umbruch stehen soll. Der Compiler speichert das Zeichen und nicht die beiden sichtbaren Zeichen Backslash und n. Das ist praktisch für Text, den Sie direkt festlegen. \x0A schreibt dasselbe Zeichen, doch \n ist in der Regel leichter zu erkennen. In einem Verbatim-Zeichenfolgenliteral werden Escape-Sequenzen nicht interpretiert. Verwenden Sie für diese Schreibweise daher ein gewöhnliches Zeichenfolgenliteral.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
using System;
class Program
{
static void Main()
{
string message = "First line\nSecond line";
Console.WriteLine(message);
}
}
First line
Second line
Mit Environment.NewLine den Zeilenumbruch der Plattform verwenden
Verwenden Sie Environment.NewLine, wenn die Zeilentrenner einer Zeichenfolge der aktuellen Umgebung entsprechen sollen. Der Wert entspricht der Zeilenumbruchsequenz dieser Umgebung. Das ist für plattformorientierte Textdateien und zusammengesetzte Meldungen nützlich, macht den Text jedoch nicht mit jedem Protokoll kompatibel: Formate wie HTTP, verschiedene CSV-Varianten oder ein entfernter Dienst können eigene Regeln für Zeilenenden festlegen. Console.WriteLine() fügt beim Schreiben unabhängig davon einen Zeilenabschluss an. Wenn Sie einer Zeichenfolge also Environment.NewLine hinzufügen und anschließend WriteLine() aufrufen, kann am Ende ein weiterer Umbruch entstehen.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
using System;
class Program
{
static void Main()
{
string message = "First line" + Environment.NewLine + "Second line";
Console.WriteLine(message);
}
}
First line
Second line
\n, \r, \r\n oder \x0A passend zur Bedeutung auswählen
\n steht für Line Feed (LF), \r für Carriage Return (CR). Historisch setzt CR den Cursor an den Zeilenanfang zurück, während LF zur nächsten Zeile wechselt. In vielen Textsystemen ist LF allein ein Zeilenende; unter Windows wird üblicherweise CRLF (\r\n) verwendet. Ältere Systeme verwendeten auch CR allein. Das sind Konventionen und keine austauschbaren Schreibweisen: Wählen Sie die Darstellung, die das Zielsystem verlangt, insbesondere beim Schreiben eines Protokolls oder Dateiformats. In C#-Zeichenfolgenliteralen bezeichnet \x0A dasselbe LF-Zeichen wie \n. Für gewöhnliche Zeilenumbrüche ist \n meist die klarere Schreibweise. Verwenden Sie Environment.NewLine nur, wenn die Plattformkonvention beabsichtigt ist.
C#-Zeilenumbrüche in ASP.NET in HTML-<br> umwandeln
Damit Text mit Zeilenumbrüchen als HTML dargestellt wird, kodieren Sie ihn zunächst als HTML und ersetzen Sie danach die Zeilenumbruchsequenzen durch <br>. Prüfen Sie CRLF vor einzelnem CR oder LF, damit ein Windows-Zeilenende genau einen HTML-Umbruch ergibt. Das Beispiel enthält nur festgelegten Beispieltext. Bei Text aus Anfragen oder von Benutzern muss die Kodierung erhalten bleiben, damit kein Markup eingeschleust werden kann. Verwenden Sie in ASP.NET bevorzugt die üblichen Ausgabekodierungsfunktionen der jeweiligen View-Technologie.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
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>