Ich muss mehrere Textzeilen einrücken (im Gegensatz zu this question for a single line of text).Mehrere Textzeilen einrücken
Lasst sie sagen, das ist mein Eingabetext:
First line
Second line
Last line
Was ich brauche, ist dieses Ergebnis:
First line
Second line
Last line
Hinweis der Vertiefung in jeder Zeile.
Dies ist, was ich bisher:
var textToIndent = @"First line
Second line
Last line.";
var splittedText = textToIndent.Split(new string[] {Environment.NewLine}, StringSplitOptions.None);
var indentAmount = 4;
var indent = new string(' ', indentAmount);
var sb = new StringBuilder();
foreach (var line in splittedText) {
sb.Append(indent);
sb.AppendLine(line);
}
var result = sb.ToString();
Gibt es einen sichereren/einfachen Weg, es zu tun?
Mein Problem ist in der Split-Methode, die schwierig sein kann, wenn Text von Linux, Mac oder Windows übertragen wird, und neue Zeilen möglicherweise nicht korrekt auf dem Zielcomputer aufgeteilt werden.
+1. Nur der Vollständigkeit halber verwenden einige obskure/Legacy-Systeme andere "Newline" -Kombinationen: [Newline-Darstellungen] (http://en.wikipedia.org/wiki/Newline#Representations). – Sphinxxx
Bitte verwenden Sie 'Environment.NewLine' anstelle von' "\ n" '... – aloisdg
Das ist großartig, danke! Und ich bin mir nicht sicher "\ n", aber in der Tat denken, das "\ n" könnte besser sein, wenn Sie nur mit Windows und Unix zu tun haben, da dies Strings vom anderen System analysiert werden. Andernfalls werden Windows-Umgebungen die Unix-Zeilenumbrüche nicht ersetzen. Aber wenn Sie Mac OS 9 (oder andere) unterstützen müssen, würde die Environment.NewLine besser funktionieren, denke ich. –