2010-02-04 40 views
22

Tôi đã cố gắng chia biểu thức số học (ví dụ: "1 + 2 + 10 + 15") trên dấu cộng. Tuy nhiên, tôi đã không viết được cụm từ thông dụng thích hợp. Tôi nghĩ điều này sẽ hoạt động:Java - Cách chia chuỗi trên dấu cộng?

expression.split("\\+"); 

nhưng không. Bạn có biết giải pháp đúng không?

+1

nó hoạt động hoàn hảo. tại sao bạn nghĩ rằng nó không? – Bozho

+4

Nếu bạn muốn chia nhỏ theo mẫu không phải là regex, bạn có thể sử dụng Pattern.quote ("+") để tạo chuỗi thoát đúng cách. – Philipp

+0

Lưu ý rằng nếu bạn muốn kết thúc với một bộ đánh giá biểu thức chính thức, hãy thả các biểu thức chính quy và đi cho một trình phân tích cú pháp. –

Trả lời

38

Có. Tuy nhiên split(...) trả về một mảng, nó không "biến đổi" String của bạn thành một String[]. Hãy thử điều này:

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

Cảm ơn! Nó thực sự. Đó là buồn cười mặc dù bởi vì tôi đã thử nó một lần nữa trong một dự án trống rỗng và nó đã làm việc. Tuy nhiên, nó ném một ngoại lệ trong dự án khác của tôi. Tôi sẽ cố gắng nhìn vào nó. –

+1

Nếu vẫn không hoạt động, đừng quên đăng ngoại lệ :) – Rich

+0

Rất thích nghe. Tôi cá là có gì đó khác trong dự án khác! :) –

5

cách này

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

Bạn có thể vui lòng giải thích thêm về cụm từ thông dụng đó "[+]" –

Các vấn đề liên quan