Ich habe die folgende Zeichenfolge, die wahrscheinlich ~ 100 Einträge enthalten wird:
%Vor%und ich versuche, die folgende Funktion zu schreiben:
%Vor%Ich möchte das tun, ohne eine Parsing-Bibliothek zu verwenden. Irgendwelche Ideen für etwas Schnelles?
Wenn Sie wissen, dass Ihre Zeichenfolge immer so aussehen wird, versuchen Sie etwas wie:
%Vor%Warnung: Ich habe das nicht wirklich versucht; Es könnte kleinere Syntaxfehler geben, aber die Logik sollte solide sein. Beachten Sie, dass ich auch die Fehlerüberprüfung genau null gesetzt habe, also sollten Sie das, was ich gemacht habe, robuster machen.
Die schnellste, aber hässlichste Antwort, die ich mir vorstellen kann, besteht darin, sie mit einer Zustandsmaschine Zeichen für Zeichen zu analysieren. Es ist sehr schnell, aber sehr spezifisch und ziemlich komplex. So wie ich es sehe, könnte man mehrere Zustände haben:
Beispiel:
%Vor%Außerdem können Sie dies viel schneller mit StringTokenizern (die schnell sind) oder Regexs (die langsamer sind) implementieren. Aber insgesamt ist das Parsen einzelner Zeichen höchstwahrscheinlich der schnellste Weg.
Wenn die Zeichenfolge viele Einträge enthält, können Sie besser manuell ohne einen StringTokenizer analysieren, um etwas Speicher zu sparen (für den Fall, dass Sie Tausende dieser Zeichenfolgen analysieren müssen, ist es den zusätzlichen Code wert):
%Vor%Ich habe diesen Code mit diesen Strings getestet und es funktioniert gut:
{k1 = v1}
{k1 = v1, k2 = v2, k3 = v3, k4 = v4}
{k1 = v1,}
Tags und Links java text-parsing