2010-02-04 14 views
22

Stavo cercando di dividere un'espressione aritmetica (ad esempio "1 + 2 + 10 + 15") sui segni più. Tuttavia, non sono riuscito a scrivere l'espressione regolare appropriata. Ho pensato che questo avrebbe funzionato:Java - Come dividere una stringa su più segni?

expression.split("\\+"); 

ma non è così. Conosci la soluzione corretta?

+1

funziona perfettamente. perchè pensi che non sia così? – Bozho

+4

Se si desidera dividere per uno schema non regex, è possibile utilizzare Pattern.quote ("+") per generare una stringa correttamente escape. – Philipp

+0

Si noti che se si vuole finire con un valutatore di espressioni completo, rilasciare le espressioni regolari e cercare un parser. –

risposta

38

Lo fa. Tuttavia, split(...) restituisce un array, non "trasforma" il tuo String in un String[]. Prova questo:

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

Grazie! Lo fa davvero. È divertente, però, perché l'ho provato di nuovo in un progetto vuoto e ha funzionato. Tuttavia, getta un'eccezione nel mio altro progetto. Proverò a esaminarlo. –

+1

Se ancora non funziona, non dimenticare di postare l'eccezione :) – Rich

+0

Buono a sentirlo. Scommetto che c'è qualcosa di diverso nell'altro progetto! :) –

5

questo modo

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

Potresti per favore approfondire di più su quell'espressione regolare "[+]" –

Problemi correlati