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.
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:
Pattern
s müssen mit \\
doppelt maskiert werden. Edit: Hier nicht erforderlich. []
-Klammern im Muster geben eine Zeichenklasse an.Pattern
s hier .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.
Sie benötigen einen regulären Ausdruck. Zusätzlich benötigen Sie den Regex-Operator OR
:
String[]tokens = Stringname.split("\\+|\\-|\\*|\\/|\\=");
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