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]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

        /// <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!