2010-02-04 14 views
22

Próbowałem podzielić wyrażenie arytmetyczne (np. "1 + 2 + 10 + 15") na znakach plus. Jednak nie udało mi się napisać odpowiedniego wyrażenia regularnego. Myślałem, że to zadziała:Java - jak podzielić ciąg znaków plusa?

expression.split("\\+"); 

, ale nie działa. Czy znasz prawidłowe rozwiązanie?

+1

działa idealnie. dlaczego myślisz, że tak nie było? – Bozho

+4

Jeśli chcesz podzielić przez wzorzec inny niż regex, możesz użyć Pattern.quote ("+"), aby wygenerować łańcuch znaków o prawidłowym łańcuchu. – Philipp

+0

Należy zauważyć, że jeśli chcesz skończyć z pełnoprawnym oceniającym wyrażenie, upuść wyrażenia regularne i przejdź do analizatora składni. –

Odpowiedz

38

To robi. Jednak split(...) zwraca tablicę, nie "przekształca" swojego String w String[]. Spróbuj tego:

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

Dzięki! To naprawdę robi. To zabawne, ponieważ próbowałem go ponownie w pustym projekcie i działało. Jednak zgłasza wyjątek w moim drugim projekcie. Spróbuję zajrzeć do tego. –

+1

Jeśli to nadal nie działa, nie zapomnij opublikować wyjątku :) – Rich

+0

Dobrze to słyszeć. Założę się, że w innym projekcie jest coś innego! :) –

5

ten sposób

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

Czy mógłbyś bardziej rozwinąć to wyrażenie regularne "[+]" –

Powiązane problemy