In C# einen String parsen

Der folgende Code ist eine Übersetzung aus einer sehr häufig verwendeten Delphi-Funktion. Sie war Grundlage vieler Projekte, da Delphi von Haus aus keine Parsingmethode anbot.


        public static string Parse(string Char, string S, int Count)
        {
            string T = string.Empty;

            if (S[S.Length-1].ToString() != Char)
                S += Char;
            for (int I = 1; I <= Count; I++)
            {
                if (S.Length == 0) return "";
                T = S.Substring(0, S.IndexOf(Char));
                S = S.Substring(S.IndexOf(Char)+1);
            }
            return T;
        }

Beispiel:


string foo1 = "foo1#foo2#foo3#hallo"; // der Ausgangsstring
string teil1 = Parse("#", foo1, 1); // enth&auml;lt: "foo1"
string teil2 = Parse("#", foo1, 2); // enth&auml;lt: "foo2"
string teil4 = Parse("#", foo1, 4); // enth&auml;lt: "hallo"
string leer = Parse("#", foo1, 42); // enth&auml;lt: "" (leer)

Ich gebe zu, dass das nicht gerade die effizienteste Methode ist einen String zu zerlegen, aber die Routine ist äusserst effektiv und einfach aufgebaut. Fehlverwendung ist praktisch ausgeschlossen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.