Feedback

C# - String ohne Zeichenentfernung aufsplitten

Veröffentlicht von am 12.02.2013
(2 Bewertungen)
Diese Methoden können einen String an einem Zeichen aufsplitten ohne das Trennzeichen zu entfernen.
Es kann angegeben werden ob das Trennzeichen vor oder hinter den Teilstrings stehen soll. Außerdem können leere Teilstrings entfernt werden.

Diese Methoden sind als Erweiterungen für string geschrieben.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

        /// <summary>
        /// Spaltet einen String an einem Zeichen auf.
        /// </summary>
        /// <param name="s">Der aufzuspaltende String.</param>
        /// <param name="c">Das Trennzeichen.</param>
        /// <param name="after"><c>true</c> wenn das Trennzeichen vor den Zeichen ketten stehen soll, andernfalls <c>false</c>.</param>
        /// <returns>Die Teilstrings.</returns>
        public static string[] Split(this string s, char c, bool after)
        {
            return Split(s, c, after, StringSplitOptions.None);
        }
        /// <summary>
        /// Spaltet einen String an einem Zeichen auf.
        /// </summary>
        /// <param name="s">Der aufzuspaltende String.</param>
        /// <param name="c">Das Trennzeichen.</param>
        /// <param name="after"><c>true</c> wenn das Trennzeichen vor den Zeichen ketten stehen soll, andernfalls <c>false</c>.</param>
        /// <param name="o">Weitere Optionen zum aufsplitten</param>
        /// <returns>Die Teilstrings.</returns>
        public static string[] Split(this string s, char c, bool after, StringSplitOptions o)
        {
            string t = "";
            //Spezielle Zeichen in Regex
            if (c == '.' || c == ',' || c == '+' || c == '-' || c == '*' || c == '(' || c == ')'
             || c == '[' || c == ']' || c == '{' || c == '}' || c == '|' || c == '?' || c == '\\')
                t = string.Concat(@"\", c);
            else if(c == ' ')
                t = @"\s"; //Leerzeichen
            else
                t = c.ToString(); //Sonstiges Zeichen
            if (o == StringSplitOptions.None)
                if (after)
                    return Regex.Split(s, string.Concat(@"(?=", t, @")"));
                else
                    return Regex.Split(s, string.Concat(@"(?<=", t, @")"));
            else
            {
                List<string> l = new List<string>();
                if (after)
                    l.AddRange(Regex.Split(s, string.Concat(@"(?=", t, @")")));
                else
                    l.AddRange(Regex.Split(s, string.Concat(@"(?<=", t, @")")));
                l.Remove("");//Leere Items entfernen
                return l.ToArray();
            }
        }
Abgelegt unter split, string, regex, trennen, erweiterungsmethode.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!