Hi liebes Forum
mir fehlt momentan folgende Idee zum loesen eines Problems:
ich habe einen String:
string str ="{a,b,c,{d,e,f},g}"
diesen wert möchte ich jetzt strukturieren. D.H jede Sequenz beginnend mit {
und endet mit } ist eine Liste. Wenn innerhalb einer Sequenz wieder ein { beginnt sollte das eine unterliste sein.
Liste<string>
a
b
c
Liste<string>
d
e
f
g
mir fehlt momentan die idee wie ich das mache
danke für eure hilfe
grüße
Hallo,
Ich kann mir zwar nicht vorstellen, wofür du das brauchst, aber ich würde dafür RegEx verwenden.
Du müsstest dich von den innersten Klammerpaaren nach aussen hin arbeiten, schau dazu auch hier nach:
klitzekleiner Formelparser (mit RegEx und viel Lambda/LINQ)
Mfg
Aratar
der text ist nicht von mir so definiert sondern kommt von einem anderen programm
i brauch die werte innerhalb der Sequenz zum auswerten deshalb der aufbau in eine Liste.
danke, aber
gibt es nicht eine einfachere methode als regex?
Mit einer rekursiven methode sollte das doch reichen..
mir fehlt nur grad der Grundgedanke wie ich anfangen soll...
danke
mfg
Hallo,
du kannst es auch einfach rekursiv machen.
Erstelle dazu einfache eine Klasse die eine Liste enthält um die Chars (a,b,c,d...) zu speichern
Zudem braucht die Klasse noch eine List die Unterobjekte enthält (unterobjekte vom selben Typ)
Dann kannst du einfach Rekursiv vom Anfang des Strings starten.
Wenn du die ersten öffnende Klammer findest dann machst du einen Rekursiven Aufruf und speicherst das Resultat in deine Unterobjekte-Liste
Wenn im Rekursiven Aufruf eine schließende Klammer erreicht wird gibst du einfach die bis dahin gefundenen Buchstaben zurück
Das ist jetzt blöd so zu erklären, aber du hast sicher verstanden was ich damit sagen wollte
Gruß
Michael
Hallo fr4gme,
so eine rekursive Liste zu parsen, ist wirklich keine große Sache. Für einen ziemlich ähnlichen Fall habe ich es in [erledigt] StringToBool - Parser beschrieben.
herbivore
Ich kann mir zwar nicht vorstellen, wofür du das brauchst, aber ich würde dafür RegEx verwenden.
ich vermute mal ganz stark das da ein string im json format rein kommt. fals ich falsch liegen solte habe ich nix gesagt
MfG Paul