2012-03-14 10 views
8

मैचों: जांच करेगा कि पूर्ण स्ट्रिंग दर्ज स्ट्रिंग ऑब्जेक्ट में मौजूद मान के बराबर है या नहीं।मैचों और बराबर के बीच अंतर IgnoreCase या स्ट्रिंग क्लास में बराबर

बराबर इग्नोरकेस: मामले को अनदेखा करते हुए, यह जांचता है कि स्ट्रिंग ऑब्जेक्ट में मौजूद स्ट्रिंग के बराबर है या नहीं।

के बराबर है: केस संवेदनशील और यह जांचता है कि स्ट्रिंग ऑब्जेक्ट में मौजूद स्ट्रिंग के बराबर है या नहीं।

स्ट्रिंग क्लास में मौजूद विधियों के बारे में मुझे यही पता है।

क्या कोई अन्य अंतर है (क्या मुझे कोई मूल्यवान अंतर है)?

यदि कोई अंतर नहीं है, तो स्ट्रिंग क्लास से विधि मिलान विधि क्यों हटाई जा सकती है, क्योंकि यह जो कार्यक्षमता आगे बढ़ती है, वह अन्य उपरोक्त विधियों का उपयोग करके उचित रूप से प्राप्त की जा सकती है।

+0

[से मेल खाता है] (http: // www .javamex.com/ट्यूटोरियल/regular_expressions/string_matches.shtml) नियमित अभिव्यक्तियों पर काम करता है। – Lion

+0

यह जांचें [प्रश्न] (http://stackoverflow.com/questions/2483029/equals-and-equalsignorecase) – Rakesh

+0

क्षमा करें लेकिन मुझे भ्रमित नहीं है बराबर और बराबर इग्नोरकेस –

उत्तर

17

एक बड़ा अंतर है - matches एक नियमित अभिव्यक्ति पैटर्न के लिए String का मिलान जांचता है, वही स्ट्रिंग नहीं। इस तथ्य से गुमराह मत बनो कि इसे एक तर्क के रूप में String प्राप्त होता है।

उदाहरण के लिए:

"hello".equals(".*e.*"); // false 
"hello".matches(".*e.*"); // true 
+0

क्या आप मुझे एक उदाहरण दे सकते हैं? मैं अंतर बनाने में असमर्थ हूं। –

+0

क्या है। * जिसका आप यहां उपयोग कर रहे हैं ?? –

+1

यह एक वाइल्डकार्ड है। यहां एक नज़र डालें: http://docs.oracle.com/javase/tutorial/essential/regex/ – MByD

10

मुख्य अंतर यह है जबकि बराबर एक विशिष्ट स्ट्रिंग से मेल खाता है matches एक नियमित अभिव्यक्ति से मेल खाता है।

System.out.println("hello".matches(".+")); // Output: true 
System.out.println("hello".equals(".+"));  // Output: false 
System.out.println("wtf?".matches("wtf?")); // Output: false 
System.out.println("wtf?".equals("wtf?")); // Output: true 

मैं सुझाव है कि आप अगर स्ट्रिंग के लिए रेगुलर एक्सप्रेशन से मेल खाता है जो एक नियमित अभिव्यक्ति http://en.wikipedia.org/wiki/Regular_expression

+0

क्या आप कृपया मुझे बता सकते हैं। + रन टाइम पर क्या हो रहा है? –

+0

क्या आपने पढ़ा था कि नियमित अभिव्यक्ति पहले क्या है? –

0

matches रिटर्न सच है पर एक नजर है, इसलिए, यह स्ट्रिंग कक्षा से निकाल नहीं किया जाना चाहिए।

1

यह मैं क्या प्रलेखन से मिल गया है ...

मैचों (String regex): बताता है या नहीं, इस स्ट्रिंग दिया नियमित अभिव्यक्ति

के बराबर होती है (String Object) से मेल खाता है: इस की तुलना निर्दिष्ट वस्तु के लिए स्ट्रिंग। नतीजा सच है अगर और केवल अगर तर्क शून्य नहीं है और एक स्ट्रिंग ऑब्जेक्ट है जो इस ऑब्जेक्ट के रूप में वर्णों के समान अनुक्रम का प्रतिनिधित्व करता है।

बराबर इग्नोरकेस (String anotherString): इस स्ट्रिंग को केस विचारों को अनदेखा करते हुए किसी अन्य स्ट्रिंग की तुलना करता है। दो तारों को बराबर अनदेखा मामले माना जाता है यदि वे एक ही लंबाई के हैं और दो तारों में संबंधित वर्ण बराबर मामले को अनदेखा कर रहे हैं।

0

मैचों() की पुष्टि करने के लिए इस्तेमाल किया ---- क्या दिया स्ट्रिंग निर्दिष्ट regexpression मैचों

पूर्व;। स्ट्रिंग रों = "humbapumpa जिम"; assertTrue (s.matches ("(जिम | जो)।।। "));

बराबर() सिर्फ सटीक मिलान के रूप में निर्दिष्ट स्ट्रिंग के साथ दिया स्ट्रिंग की जाँच के लिए equalsIgnoreCase() --- केस संवेदी पर ध्यान नहीं देगा

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