Sprache: C#
Eigentlich eine ziemliche einfache Methode.
Sie entfernt Text am Anfang und Ende jeder Zeile eines Textes. (Wendet die String.Trim()-Methode auf jede Zeile an)
public static string TrimAllLines(this string input)
{
string output = "";
string[] seperator = { "rn" };
foreach (string line in input.Split(seperator, StringSplitOptions.None))
output += line.Trim() + Environment.NewLine;
return output.Trim();
}
public static string TrimAllLines(this string input)
{
string output = "";
string[] seperator = { "rn" };
foreach (string line in input.Split(seperator, StringSplitOptions.None))
output += line.Trim() + Environment.NewLine;
return output.Trim();
}
Alte URL:
/snippet/alle-zeilen-eines-textes-strings-trimmen/1744
Du solltest auch noch auf r abfragen. Denn je nach Kodierung kann der Zeilenumbruch ein anderes Steuerzeichen darstellen. Um doppelte Zeilenumbrüche zu verweiden, sollte man rn (Windows) vorher gegen n austauschen. Das richtige wieder zusammen führen (r oder n oder beides) wäre natürlich auch nicht schlecht.
Anstelle mittels += den String wieder zusammen zu setzen, solltest du einen StringBuilder nutzen. Dieser ist schneller. Oder natürlich String.Join(string, string[]).
Außerdem ist es empfehlenswert Ein Zeichenarray anzunehmen, welches der Trim-Methode übergeben wird. Dadurch kann man die Methode vielseitiger einsetzen.
Außerdem wäre es als Erweiterungsmethode für string einfacher zu benutzen.
So und für alle die LINQ mögen:
[code] static string TrimAllLines(this string s, params char[] chars)
{
string newline = s.Contains(„rn“) ? „rn“ : s.Contains(„r“) ? „r“ : „n“;//Richtigen Zeilenumbruch finden
return String.Join(newline, s.Replace(„rn“, „n“).Split(‚r‘, ’n‘).Select(x => x.Trim(chars)));//Anhand von LINQ die Zeichen entfernen
}[/code]
Ich hoffe mal das war nicht zu viel Kritik 😉
Wie wäre es mit
[code]
public static string TrimLines(string lines)
{
return Regex.Replace(lines, @“(^s+|s+$)“, string.Empty, RegexOptions.Multiline);
}
[/code]
Kein Ding 🙂
Wie soll man es sonst lernen??
Sofern danke für die Kritik: Nächstes Mal mach ich es besser. 😉