आप 1 चार तार के लिए String#equalsIgnoreCase(String)
उपयोग कर सकते हैं: -
if (oper.equalsIgnoreCase("add") ||
oper.equalsIgnoreCase("addition") ||
oper.equals("+"))
तार की संख्या बढ़ जाती है, तो आप एक List
के साथ बंद बेहतर होगा, और इसके contains
विधि का उपयोग करें। लेकिन सिर्फ इन इनपुट के लिए, आप केवल इस दृष्टिकोण का पालन कर सकते हैं। आप वास्तव में इस के लिए एक regex की जरूरत नहीं है,
if (oper.matches("add|addition|[+]")
लेकिन -:
इस दृष्टिकोण का एक अन्य तरीका String#matches(String)
विधि है, जो एक regex लेता उपयोग करने के लिए है। विशेष रूप से, यह विधि अधिक इनपुट के लिए बदसूरत हो सकती है। लेकिन, यह इस मामले के लिए सिर्फ एक रास्ता है। तो, आप उनमें से किसी एक को चुन सकते हैं। पहली बार जाने के लिए पहला एक और स्पष्ट है।
वैकल्पिक रूप से, आप भी enum
का उपयोग operators
स्टोर करने के लिए, और यह हर जगह उदाहरण है गुजरती हैं, बल्कि एक string
से कर सकते हैं। इसके साथ काम करना अधिक आसान होगा। enum इस प्रकार दिखाई देगा:
public enum Operator {
ADD,
SUB,
MUL,
DIV;
}
आप अपने उचित जरूरत के लिए यह वृद्धि कर सकते हैं। ध्यान दें, चूंकि आपको उपयोगकर्ता इनपुट मिल रहा है, इसलिए आपको पहले इसके आधार पर उपयुक्त एनम इंस्टेंस की पहचान करने की आवश्यकता होगी, और वहां से आप स्ट्रिंग के बजाए उस एनम इंस्टेंस पर काम कर सकते हैं।
स्रोत
2013-01-24 12:58:58
शायद एक सूची/सरणी में वैकल्पिक शब्द रख दिया और एक होता है()/पाश है। पूंजी अक्षरों को अनुमति देने के लिए, बस इसे पार्स करने से पहले सभी इनपुट को लोअरकेस (या अपरकेस) में कनवर्ट करें, या नीचे सुझाए गए इग्नोरकेस का उपयोग करें। – keyser
'बराबर()' के बराबर अनदेखा करें() '? –