Aufteilen einer Zeichenkette unter Verwendung der Wort-Trennzeichen
ich habe einen string, wie unten
a > b and c < d or d > e and f > g
Ergebnis muss sein:
a > b
and
c < d
or
d > e
and
f > g
will ich split den string auf vorkommen von "und" , "oder" und rufen Sie die delims als auch zusammen mit dem token.[ich brauche Sie, um den Ausdruck auszuwerten]
ich habe versucht, mit StringTokenizer als
new StringTokenizer(x, "\\sand\\s|\\sor\\s", true);
aber i dont get das gewünschte Ergebnis.
ich habe mit einem scanner als
Scanner sc = new Scanner(x);
sc.useDelimiter("and | or");
dieser ist in der Lage zu split ist aber nicht die Rückkehr der Trennzeichen.
bitte vorschlagen.
habe ich gegeben a , b , c oben, aber es cud werden Wörter anstelle von a,b , c mit Leerzeichen.
Aktualisiertes Beispiel.
- Deine Beschreibung impliziert, mithilfe der Strings "und" & "oder" als Trennzeichen, sondern Ihren Ausgang impliziert "" als Trennzeichen. Bitte klären Sie.
- doh! ich gebe schlechtes Beispiel als string..lassen Sie mich ein weiteres Beispiel
- stackoverflow.com/questions/3777546/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese wird aufgeteilt auf "und" oder "oder" mit einer beliebigen Anzahl von Leerzeichen umgeben die Worte.
Ausgabe
Was Sie wirklich wollen, ist ein tool wie JFlex durch die Zeit, die Sie in all die verschiedenen Permutationen von Leerzeichen und wie Ihre syntax wächst. Langfristig sparen Sie Zeit.
split
nicht zurück delims.Einen StringTokenizer ist die einzige java-standard-Klasse, die fähig ist, die Rückgabe der Trennzeichen verwendet als gut, wie weit ich bin bewusst. Kopier einfach die regex von der OT unter der Annahme, dass es wird tun, was er will (was auf den zweiten Blick habe ich extrem Zweifel aus seinem textuellen Beschreibung, aber naja - nur legen Sie die richtige ein)
Ausgabe: