1. तारांची तुलना करणे
हे सर्व चांगले आणि चांगले आहे. परंतु तुम्ही पाहू शकता की s1
आणि s2
स्ट्रिंग्स प्रत्यक्षात समान आहेत, म्हणजे त्यामध्ये समान मजकूर आहे. स्ट्रिंग्सची तुलना करताना, तुम्ही प्रोग्रॅमला String
वस्तूंचे पत्ते न पाहता त्यांच्या सामग्रीकडे कसे पहावे?
यामध्ये आम्हाला मदत करण्यासाठी, Java च्या String
क्लासची equals
पद्धत आहे. कॉल करणे असे दिसते:
string1.equals(string2)
true
जर स्ट्रिंग समान असतील आणि false
जर ते समान नसेल तर ही पद्धत परत येते .
उदाहरण:
कोड | नोंद |
---|---|
|
|
अधिक उदाहरणे:
कोड | स्पष्टीकरण |
---|---|
|
false |
|
true |
|
true |
|
true |
2. केस-संवेदनशील स्ट्रिंग तुलना
शेवटच्या उदाहरणात, तुम्ही पाहिले की तुलना मिळते . खरंच, तार समान नाहीत. परंतु..."Hello".equals("HELLO")
false
स्पष्टपणे, तार समान नाहीत. ते म्हणाले, त्यांच्या सामग्रीमध्ये समान अक्षरे आहेत आणि केवळ अक्षरांच्या बाबतीत भिन्न आहेत. त्यांची तुलना करण्याचा आणि पत्रांच्या केसकडे दुर्लक्ष करण्याचा काही मार्ग आहे का? म्हणजे, त्यामुळे उत्पन्न मिळते ?"Hello".equals("HELLO")
true
आणि या प्रश्नाचे उत्तर होय आहे. जावामध्ये, String
प्रकाराची आणखी एक विशेष पद्धत आहे: equalsIgnoreCase
. कॉल करणे असे दिसते:
string1.equalsIgnoreCase(string2)
पद्धतीचे नाव अंदाजे तुलना म्हणून भाषांतरित करते परंतु केसकडे दुर्लक्ष करते . पद्धतीच्या नावातील अक्षरांमध्ये दोन उभ्या ओळींचा समावेश आहे: पहिला लोअरकेस आहे L
आणि दुसरा अप्परकेस आहे i
. ते तुम्हाला गोंधळात टाकू देऊ नका.
उदाहरण:
कोड | नोंद |
---|---|
|
|
3. स्ट्रिंग तुलनाचे उदाहरण
चला फक्त एक साधे उदाहरण देऊ: समजा तुम्हाला कीबोर्डवरून दोन ओळी एंटर करायच्या आहेत आणि त्या सारख्या आहेत की नाही हे ठरवायचे आहे. हा कोड कसा दिसेल:
Scanner console = new Scanner(System.in);
String a = console.nextLine();
String b = console.nextLine();
String result = a.equals(b) ? "Same" : "Different";
System.out.println(result);
4. स्ट्रिंग तुलनेची एक मनोरंजक माहिती
एक महत्त्वाचा बारकावे आहे ज्याची तुम्हाला जाणीव असणे आवश्यक आहे.
जर Java कंपाइलरला तुमच्या कोडमध्ये (विशेषत: तुमच्या कोडमध्ये) अनेक समान स्ट्रिंग आढळल्या, तर मेमरी जतन करण्यासाठी ते त्यांच्यासाठी फक्त एकच ऑब्जेक्ट तयार करेल.
String text = "This is a very important message";
String message = "This is a very important message";
आणि परिणामी मेमरीमध्ये काय असेल ते येथे आहे:
आणि जर तुम्ही text == message
येथे तुलना केली तर तुम्हाला मिळेल true
. त्यामुळे त्याबद्दल आश्चर्यचकित होऊ नका.
जर काही कारणास्तव तुम्हाला संदर्भ वेगळे हवे असतील तर तुम्ही हे लिहू शकता:
String text = "This is a very important message";
String message = new String ("This is a very important message");
किंवा हे:
String text = "This is a very important message";
String message = new String (text);
या दोन्ही प्रकरणांमध्ये, text
आणि message
व्हेरिएबल्स समान मजकूर असलेल्या भिन्न ऑब्जेक्ट्सकडे निर्देश करतात.
GO TO FULL VERSION