2010-02-04 3 views
22

Ich habe versucht, einen arithmetischen Ausdruck (zB "1 + 2 + 10 + 15") auf die Pluszeichen zu teilen. Ich habe es jedoch nicht geschafft, den entsprechenden regulären Ausdruck zu schreiben. Ich dachte, das würde funktionieren:Java - Wie teilt man einen String auf Pluszeichen?

expression.split("\\+"); 

aber es nicht. Kennst du die richtige Lösung?

+1

es perfekt funktioniert. Warum denkst du es nicht? – Bozho

+4

Wenn Sie nach einem Nicht-Regex-Muster aufteilen möchten, können Sie Pattern.quote ("+") verwenden, um eine korrekt gemische Zeichenfolge zu generieren. – Philipp

+0

Beachten Sie, dass Sie, wenn Sie mit einem vollwertigen Expression-Evaluator enden möchten, reguläre Ausdrücke löschen und einen Parser verwenden möchten. –

Antwort

38

Es tut. Jedoch split(...) gibt ein Array zurück, es "transformiert" nicht Ihre String in eine String[]. Versuchen Sie folgendes:

String expression = "1+2+10+1"; 
String[] tokens = expression.split("\\+"); 
+0

Danke! Tut es wirklich. Es ist lustig, weil ich es in einem leeren Projekt noch einmal probiert habe und es funktioniert hat. Es löst jedoch eine Ausnahme in meinem anderen Projekt aus. Ich werde versuchen, es zu untersuchen. –

+1

Wenn es immer noch nicht funktioniert, vergessen Sie nicht, die Ausnahme zu posten :) – Rich

+0

Gut zu hören. Ich wette, es gibt etwas anderes in dem anderen Projekt! :) –

5

diese Weise

expression.split("[+]"); 
+0

Könnten Sie bitte mehr über diesen regulären Ausdruck "[+]" –

Verwandte Themen