wake-up-neo.net

Aufteilen einer Zeichenfolge in Java in mehr als ein Symbol

Ich möchte einen String aufteilen, wenn folgende Symbole auf "+, -, *, /, =" .__ treffen. Ich verwende die Funktion split, aber diese Funktion kann nur ein Argument enthalten. Ich verwende folgenden Code: -

Stringname.split("Symbol");

Vielen Dank.

13
Saumyaraj

String.split nimmt einen regulären Ausdruck als Argument.

Das bedeutet, dass Sie beliebige Symbole oder Textabstraktionen in einem Parameter abwechseln können, um Ihre String zu teilen. 

Siehe Dokumentation hier

Hier ist ein Beispiel für Ihren Fall: 

String toSplit = "a+b-c*d/e=f";
String[] splitted = toSplit.split("[-+*/=]");
for (String split: splitted) {
    System.out.println(split);
}

Ausgabe: 

a
b
c
d
e
f

Anmerkungen: 

  • Reservierte Zeichen für Patterns müssen mit \\ doppelt maskiert werden. Edit: Hier nicht erforderlich. 
  • Die []-Klammern im Muster geben eine Zeichenklasse an.
  • Mehr zu Patterns hier .
37
Mena

Sie können einen regulären Ausdruck verwenden:

String[] tokens = input.split("[+*/=-]");

Hinweis: - sollte an erster oder letzter Stelle platziert werden, um sicherzustellen, dass es nicht als Bereichstrennzeichen betrachtet wird.

9
assylias

Sie benötigen einen regulären Ausdruck. Zusätzlich benötigen Sie den Regex-Operator OR:

String[]tokens = Stringname.split("\\+|\\-|\\*|\\/|\\=");
5
Dennis Kriechel

Dafür müssen Sie eine entsprechende Regex-Anweisung verwenden. Die meisten der aufgelisteten Symbole sind in Regex gespeichert, daher müssen Sie sie mit \ abschließen.

Ein sehr grundlegender Ausdruck wäre \+|\-|\\|\*|\=. Relativ einfach zu verstehen, wird jedes gewünschte Symbol mit \ gekennzeichnet und jedes Symbol wird durch das | (oder) -Symbol getrennt. Wenn Sie zum Beispiel auch ^ hinzufügen möchten, müssen Sie nur |\^ an diese Anweisung anhängen.

Zum Testen und für schnelle Ausdrücke verwende ich gerne www.regexpal.com 

1
Deactivator2