2010-02-04 21 views
22

मैं प्लस संकेतों पर एक अंकगणितीय अभिव्यक्ति (उदाहरण के लिए "1 + 2 + 10 + 15") को विभाजित करने की कोशिश कर रहा था। हालांकि, मैं उचित नियमित अभिव्यक्ति लिखने का प्रबंधन नहीं किया था। मैंने सोचा कि यह काम करेगा:जावा - प्लस संकेतों पर एक स्ट्रिंग को कैसे विभाजित करें?

expression.split("\\+"); 

लेकिन ऐसा नहीं है। क्या आप सही समाधान जानते हैं?

+1

यह पूरी तरह काम करता है। आपको ऐसा क्यों लगता है कि ऐसा नहीं हुआ? – Bozho

+4

यदि आप एक गैर-रेगेक्स पैटर्न द्वारा विभाजित करना चाहते हैं तो आप ठीक से बच निकलने वाली स्ट्रिंग उत्पन्न करने के लिए Pattern.quote ("+") का उपयोग कर सकते हैं। – Philipp

+0

ध्यान दें कि यदि आप एक पूर्ण अभिव्यक्ति मूल्यांकनकर्ता के साथ समाप्त करना चाहते हैं, तो नियमित अभिव्यक्तियों को छोड़ दें और एक पार्सर के लिए जाएं। –

उत्तर

38

ऐसा करता है। हालांकि split(...) एक सरणी देता है, यह आपके String को String[] में "रूपांतरित नहीं करता" है। इस प्रयास करें:

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

धन्यवाद! यह वास्तव में करता है। यह मजाकिया है क्योंकि मैंने इसे एक खाली परियोजना में फिर से कोशिश की है और यह काम किया है। हालांकि, यह मेरे अन्य प्रोजेक्ट में अपवाद फेंकता है। मैं इसे देखने की कोशिश करूंगा। –

+1

यदि यह अभी भी काम नहीं करता है, तो अपवाद पोस्ट करना न भूलें :) – Rich

+0

इसे सुनकर अच्छा लगा। मैं शर्त लगाता हूं कि अन्य परियोजना में कुछ अलग है! :) –

5

इस तरह

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

क्या आप उस नियमित अभिव्यक्ति पर अधिक विस्तृत जानकारी दे सकते हैं "[+]" –

संबंधित मुद्दे