Feedback

C# - Alle Zeilen eines Textes (Strings) Trimmen

Veröffentlicht von am 08.07.2013
(2 Bewertungen)
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)
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

public static string TrimAllLines(this string input)
{
    string output = "";
    string[] seperator = { "\r\n" };
    foreach (string line in input.Split(seperator, StringSplitOptions.None))
        output += line.Trim() + Environment.NewLine;
    return output.Trim();
}
Abgelegt unter trim, alle, zeilen, text, all, lines.

3 Kommentare zum Snippet

Koopakiller schrieb am 09.07.2013:
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 \r\n (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:
        static string TrimAllLines(this string s, params char[] chars)
{
string newline = s.Contains("\r\n") ? "\r\n" : s.Contains("\r") ? "\r" : "\n";//Richtigen Zeilenumbruch finden
return String.Join(newline, s.Replace("\r\n", "\n").Split('\r', '\n').Select(x => x.Trim(chars)));//Anhand von LINQ die Zeichen entfernen
}


Ich hoffe mal das war nicht zu viel Kritik ;)
Roman Wagner schrieb am 09.07.2013:
Wie wäre es mit

public static string TrimLines(string lines)
{
return Regex.Replace(lines, @"(^\s+|\s+$)", string.Empty, RegexOptions.Multiline);
}
dariusarnold schrieb am 09.07.2013:
Kein Ding :)
Wie soll man es sonst lernen??
Sofern danke für die Kritik: Nächstes Mal mach ich es besser. ;)
 

Logge dich ein, um hier zu kommentieren!