"हाय, अमीगो!"

"लेकिन, बिलाबो, तुमने पहले ही नमस्ते कह दिया है।"

"वाकई? ठीक है, मुझे अभी भी हर पाठ की शुरुआत उस वाक्यांश से करना अच्छा लगता है।"

"आज हम स्ट्रिंग क्लास का गहराई से अध्ययन करने जा रहे हैं।"

"लेकिन, मैं पहले से ही इसके बारे में सबकुछ जानता हूं। मुझे यह भी पता है कि स्ट्रिंग क्लास अपरिवर्तनीय है।"

"स्ट्रिंग क्लास में 46 विधियाँ हैं। आप उनमें से कितने को जानते हैं?"

"दस से अधिक नहीं। वास्तव में, शायद लगभग 5 अधिकतम।"

"तो सुनो।"

"जावा के रचनाकारों ने देखा कि कार्यक्रमों में अधिकांश स्ट्रिंग्स को संशोधित करने का इरादा नहीं है, लेकिन कभी-कभी वे वैसे भी संशोधित हो जाते हैं। यह बहुत कष्टप्रद होता है जब आप एक स्ट्रिंग बनाते हैं, इसमें कुछ महत्वपूर्ण सहेजते हैं, इसे किसी और के तरीके से पास करते हैं, और यह बदल जाता है ऐसा होने से रोकने के लिए, उन्होंने परस्पर और अपरिवर्तनीय दोनों प्रकार की स्ट्रिंग्स बनाने का निर्णय लिया।"

"स्ट्रिंग क्लास अपरिवर्तनीय स्ट्रिंग्स के लिए है, और स्ट्रिंगबिल्डर क्लास म्यूटेबल लोगों के लिए है। इन वर्गों की वस्तुओं को आसानी से दूसरे प्रकार में परिवर्तित किया जाता है। ज्यादातर मामलों में, जावा डेवलपर्स को केवल स्ट्रिंग की आवश्यकता होती है, जो यह साबित करती है कि जावा के निर्माता सही थे।"

"तो अगर मुझे स्ट्रिंग की ज़रूरत है, तो मैं स्ट्रिंग क्लास का उपयोग करता हूं। और अगर मुझे एक म्यूटेबल स्ट्रिंग की ज़रूरत है, तो मैं स्ट्रिंगबिल्डर क्लास का उपयोग करता हूं?"

"हाँ। वास्तव में, स्ट्रिंगबफ़र नामक एक और वर्ग है। यह स्ट्रिंगबिल्डर की एक प्रति है, इसके सभी तरीकों को सिंक्रनाइज़ के रूप में घोषित किया गया है , ताकि ऑब्जेक्ट को प्रोग्राम के विभिन्न थ्रेड्स से एक्सेस किया जा सके।"

"और इस उदाहरण के बारे में क्या? क्या यहाँ स्ट्रिंग नहीं बदली जाती है?"

String s = "cat";
s = s + "-" + s;

"नहीं। यहां दो स्ट्रिंग ऑब्जेक्ट हैं: «बिल्ली» और «बिल्ली-बिल्ली»। दूसरा पहले का उपयोग करके बनाया गया है, लेकिन पहला ऑब्जेक्ट नहीं बदलता है। वास्तव में, यहां चीजें कहीं अधिक दिलचस्प हैं। यहां कोड है संकलक उत्पन्न करता है जब यह आपके उदाहरण को संकलित करता है:"

String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();

"तो, स्ट्रिंगबिल्डर लगभग हमेशा नए स्ट्रिंग्स बनाने के लिए उपयोग किया जाता है, लेकिन कभी-कभी संकलक आपके लिए सभी काम करता है। लेकिन आपका संस्करण सरल है, क्या आपको नहीं लगता?"

"हाँ, यह बहुत बढ़िया है कि जावा के पास इतना उन्नत कंपाइलर है।"

"ठीक है, अब स्ट्रिंग क्लास के तरीकों से चलते हैं:"

1) मैं स्ट्रिंग की लंबाई कैसे प्राप्त करूं?

" लंबाई विधि स्ट्रिंग की लंबाई (इसमें वर्णों की संख्या) लौटाती है।"

विधि उदाहरण)
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) मैं एक स्ट्रिंग से एक चरित्र कैसे प्राप्त करूं?

" CharAt विधि एक स्ट्रिंग से एक वर्ण को उसके सूचकांक द्वारा लौटाती है। वर्ण सूचकांक 0 से शुरू होते हैं।

विधि उदाहरण)
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) मैं स्ट्रिंग से पात्र कैसे प्राप्त करूं?

मैं स्ट्रिंग से पात्र कैसे प्राप्त करूं?

विधि उदाहरण)
char[]toCharArray ()
String s = "Good news, everyone!";
for(char c: s.toCharArray())
{
System.out.println(c);
}

4) मैं स्ट्रिंग्स की तुलना कैसे करूं?

"बराबर विधि जाँचती है कि क्या स्ट्रिंग्स मेल खाते हैं, और बराबरी इग्नोरकेस विधि यह देखने के लिए जाँच करती है कि क्या स्ट्रिंग्स मेल खाते हैं जब मामले को अनदेखा किया जाता है।

विधि विधि
boolean equals(Object o)
String s = "cat";
boolean test1 = s.equals("cat");//true
boolean test2 = s.equals("Cat");//false
boolean test3 = s.equals("c"+"a"+"t");//true
boolean equalsIgnoreCase(String str)
String s = "cat";
boolean test1 = s.equalsIgnoreCase("cat");//true
boolean test2 = s.equalsIgnoreCase("Cat");//true
boolean test3 = s.equalsIgnoreCase("cAT");//true

5) मैं सभी अक्षरों को एक स्ट्रिंग अपरकेस या लोअरकेस में कैसे बना सकता हूँ?

" toUpperCase विधि सभी अपरकेस अक्षरों के साथ स्ट्रिंग की एक प्रति लौटाती है।"

" ToLowerCase विधि सभी लोअरकेस अक्षरों के साथ स्ट्रिंग की एक प्रति लौटाती है।"

विधि उदाहरण)
String toUpperCase()
String s = " Good news, everyone!  ";
s = s.toUpperCase();

परिणाम:

s == "GOOD NEWS, EVERYONE!";
String toLowerCase()
String s = "Good news, everyone!";
s = s.toLowerCase();

परिणाम:

s == "good news, everyone!";

6) मैं एक स्ट्रिंग के आरंभ और अंत में रिक्त स्थान कैसे निकालूं?

"ट्रिम विधि शुरुआत और अंत में बिना व्हाइटस्पेस वर्णों वाले स्ट्रिंग की एक प्रति लौटाती है।"

विधि उदाहरण)
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

परिणाम:

s == "Good news, everyone!";