Zeilenumbrüche in einem String C # ersetzen
Wie kann ich ersetzen die Zeilenumbrüche in einem string in C#?
Kommentar zu dem Problem
Bitte erzählen Sie uns mehr: was ist ein "Zeilenumbruch" für Sie? Was wollen Sie, Sie zu ersetzen?
ha ha .Ich habe mir die gleiche in java, als ich fand, out-System.getProperty("line.separator") wurde Kuriositäten zu wissen, das Gegenstück in C#. Ihr Beitrag hat mir geholfen .
möglich, Duplikat der Was wäre der Schnellste Weg, um entfernen Zeilenumbrüche aus einem String in C#?
InformationsquelleAutor der Frage YonahW | 2008-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden, ersetzen Sie mit
Environment.NewLine
Wie erwähnt in anderen Beiträgen, wenn der string kommt aus einer anderen Umgebung (OS), dann würden Sie brauchen, um zu ersetzen, dass bestimmte Umgebungen Umsetzung von neue-Zeile-steuerzeichen.
InformationsquelleAutor der Antwort Corin Blaikie
Die Lösungen gepostet, die bisher entweder nur ersetzen
Environment.NewLine
oder Sie scheitern, wenn die Ersatz-Zeichenfolge enthält Zeilenumbrüche, weil Sie nennenstring.Replace
mehrere Male.Hier ist eine Lösung, die verwendet einen regulären Ausdruck, um alle drei Ersetzungen in nur einem Durchlauf über die Schnur. Dies bedeutet, dass die Ersatz-Zeichenfolge kann sicher Zeilenumbrüche.
InformationsquelleAutor der Antwort Mark Byers
Erweitern.Anyi.9 die Antwort, Sie sollten sich auch bewusst sein,verschiedene Arten von Zeilenumbruch im Allgemeinen Gebrauch. Davon abhängig, wo Sie Ihre Datei stammt, können Sie betrachten möchten, machen Sie sicher, dass Sie fangen alle alternativen...
sollte erhalten Sie gehen...
InformationsquelleAutor der Antwort ZombieSheep
Ich würde Umgebung.Newline, wenn ich wollte, um eine neue Zeile zu beginnen, für einen string, aber nicht entfernen Sie alle Zeilenumbrüche aus einem string.
Abhängig von Ihrer Plattform können Sie verschiedene Arten von Zeilenumbrüchen, aber auch innerhalb der gleichen Plattform oft verschiedene Arten von Zeilenumbrüchen verwendet werden. Insbesondere beim Umgang mit Dateiformaten und Protokollen.
InformationsquelleAutor der Antwort
Wenn Ihr code sollte laufen in verschiedenen Umgebungen, ich würde in Erwägung ziehen, die
Environment.NewLine
konstant, da es eben dernewline
verwendet, in der konkreten Umgebung ab.Allerdings, wenn Sie den text aus einer Datei mit Ursprung in einem anderen system, könnte dies nicht die richtige Antwort, und Sie ersetzen sollte, mit dem, was newline-Konstante verwendet wird, auf dem anderen system. Es wird in der Regel
\n
oder\r\n
.InformationsquelleAutor der Antwort driis
Vergessen Sie nicht, ersetzen Sie nicht den Ersatz in den string, sondern gibt einen neuen string mit den Zeichen ersetzt. Im folgenden werden Zeilenumbrüche entfernen (nicht zu ersetzen). Ich würde die Verwendung von @Brian R. Bondy ' s Methode, wenn Sie zu ersetzen mit etwas anderem, vielleicht eingewickelt wie eine Erweiterung-Methode. Denken Sie daran, für null-Werte zuerst bevor Sie Ersetzen oder die Erweiterung Methoden zur Verfügung gestellt.
Als extension Methoden:
InformationsquelleAutor der Antwort tvanfosson
Um sicherzustellen, dass alle möglichen Arten von Zeilenumbrüchen (Windows, Mac und Unix) ersetzt, die Sie verwenden sollten:
und in dieser Reihenfolge, nicht um zusätzliche Zeilenumbrüche, wenn Sie finden eine Kombination von Zeilenende-Zeichen.
InformationsquelleAutor der Antwort Dominik Szymański
Ich brauchte, um zu ersetzen, die
\r\n
mit einem tatsächlichen carriage return und line feed und ersetzen\t
mit einer aktuellen tab. Also ich kam mit der folgenden:InformationsquelleAutor der Antwort Zamir
InformationsquelleAutor der Antwort Matt Hinze
Warum nicht beide?
Hinweis: Ersetzen
strin
mit dem Namen des input-string.InformationsquelleAutor der Antwort RAY
Verwenden .Replace () - Methode
InformationsquelleAutor der Antwort The.Anti.9
Beste Weg, Sie zu ersetzen Zeilenumbrüche sicher ist
dass sollte einen string mit nur \n (z.B. Zeilenvorschub) als Zeilenumbrüche.
dieser code ist nützlich, um fix gemischte Zeilenumbrüche zu.
InformationsquelleAutor der Antwort data
Als neue Zeile können getrennt werden durch
\n
,\r
und\r\n
, zuerst werden wir ersetzen\r
und\r\n
mit\n
- und nur dann-split-Daten string.Sollten die folgenden Zeilen gehen an die
parseCSV
Methode:InformationsquelleAutor der Antwort Amrik
oder
je nachdem, welchen Weg Sie gehen wollen.
Hofft, es hilft.
InformationsquelleAutor der Antwort Freddy
Weitere Möglichkeit ist die Erstellung einer
StringReader
über die Zeichenfolge in Frage. Auf den Leser, tun.ReadLine()
in einer Schleife. Dann haben Sie die Leitungen getrennt, egal was (konsistent oder inkonsistent) - Separatoren, die Sie hatten. Mit, dass, können Sie gehen, wie Sie wollen; eine Möglichkeit ist die Verwendung einesStringBuilder
und rufen.AppendLine
.Der Vorteil ist, Sie lassen die Rahmenbedingungen entscheiden, was ein "Zeilenumbruch".
InformationsquelleAutor der Antwort Jeppe Stig Nielsen