Potrzebuję wcięcia wielu wierszy tekstu (w przeciwieństwie do this question for a single line of text).Wcięcie wielu wierszy tekstu
Powiedzmy to mój tekst wejściowy:
First line
Second line
Last line
Co potrzebne jest to wynik:
First line
Second line
Last line
Wskazówka wcięcie w każdej linii.
To, co mam tak daleko:
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();
Czy jest bezpieczniejsze/prostszy sposób to zrobić?
Moja troska dotyczy metody dzielenia, która może być trudna, jeśli tekst z systemu Linux, Mac lub Windows zostanie przeniesiony, a nowe linie mogą nie zostać poprawnie podzielone na komputerze docelowym.
+1. Tylko dla kompletności, niektóre niejasne/starsze systemy wykorzystują inne kombinacje "nowej linii": [reprezentacje Newline] (http://en.wikipedia.org/wiki/Newline#Representations). – Sphinxxx
Proszę użyć 'Environment.NewLine' zamiast' \ n "' ... – aloisdg
To świetnie, dziękuję! I nie jestem pewien co do "\ n", ale uważam, że "\ n" może być lepszy, jeśli po prostu musisz radzić sobie z Windows i Unixem, ponieważ będzie on analizował ciągi wysyłane przez inny system. W przeciwnym razie środowiska Windows nie zastąpią nowych linii Unix. Ale jeśli potrzebujesz wsparcia dla Mac OS 9 (lub innych), Environment.NewLine będzie działać lepiej, jak sądzę. –