String zerlegen anhand anderer String

mariomueller

Mitglied
Guten Morgen,

ich habe beispielsweise den String

"Das ist ein Teil des Satzes und noch ein Teil oder schon wieder und noch ein Teilsatz"
Ich möchte den String an den Stellen und bzw oder zerlegen, wo bei das natürlich dynamisch sein soll. Es kann also eine beliebige Anzahl von und bzw oder vorkommen, wobei dei Reihenfolge nicht bekannt ist.
Schön wäre, wenn die Satzteile dann in einem Array oder ArrayList stehen:
  • Das ist ein Teil des Satzes
  • und noch ein Teil
  • oder schon wieder
  • und noch ein Teilsatz
Könnte mir bitte jemand behilflich sein. Ich wollte das mit einer do-while und indexOf-Abfrage machen, bekomme es aber nicht hin.

Danke, Vieile Grüße
Mario
 
Hier mein zweiter Ansatz, ich zerlege erst den kompletten Satz and den Blanks und wollte ihn dann wieder zusammenbauen. Das funzt aber auch nicht


String xPath = "BeforeAnd and NachAnd or Nachor VorKlammer [ and ";
String strAnd = " and ";
String strOr = " or ";
String concatenateString = "";
int flagFound = 0;
ArrayList XPathParts = new ArrayList();
String[]xPathTokens = xPath.split(" ");
for (int i = 0; i < xPathTokens.length; i++) {
System.out.println(xPathTokens);
if (xPathTokens.startsWith("and")) {
flagFound = 1;
concatenateString = concatenateString + xPathTokens;
}
if (flagFound == 0) {

}

}
 
@Javinner,

danke, hat funktioniert; leider geht aber die Information verloren, ob ein "und " bzw ein "oder" das Trennzeichen war.



Scanner fromStr = new Scanner("Das ist ein Teil des Satzes und noch ein Teil oder schon wieder und noch ein Teilsatz");
fromStr.useDelimiter(" und | oder ");
while (fromStr.hasNext()) {
String temp = fromStr.next();
System.out.println(temp);

}
 
Ich denke mal "look-ahead" könnte was für dich sein um den eigentlichen Ausdruck an dem gesplittet wird zu behalten.
(?=und|oder)
 

Zurück
Oben