1. स्ट्रिंग्स सुधारित करणे

जावामध्ये, स्ट्रिंग्स अपरिवर्तनीय वस्तू आहेत. हे स्ट्रिंग क्लास अत्यंत ऑप्टिमाइझ करण्यासाठी आणि ते सर्वत्र वापरण्याची परवानगी देण्यासाठी केले गेले. उदाहरणार्थ, हॅशमॅप संग्रहात की म्हणून वापरण्यासाठी केवळ अपरिवर्तनीय प्रकारांची शिफारस केली जाते .

तथापि, अनेकदा अशा परिस्थिती उद्भवतात जेव्हा प्रोग्रामरना वर्ग Stringबदलण्यायोग्य असणे अधिक सोयीचे असते. त्यांना असा वर्ग हवा आहे जो प्रत्येक वेळी त्याची एक पद्धत कॉल केल्यावर नवीन सबस्ट्रिंग तयार करत नाही.

बरं, समजा आपल्याकडे खूप मोठी स्ट्रिंग आहे आणि आपल्याला त्याच्या शेवटी काहीतरी जोडण्याची आवश्यकता आहे. या प्रकरणात, अक्षरांचा संग्रह ( ArrayList<Character>) स्ट्रिंग ऑब्जेक्ट्स सतत पुन्हा तयार करण्यापेक्षा आणि जोडण्यापेक्षा अधिक कार्यक्षम असू शकतो.

त्यामुळेच जावा भाषेत बदलता येणारा स्ट्रिंग सारखा प्रकार जोडला गेला. त्याला म्हणतात StringBuilder.

एखादी वस्तू तयार करणे

विद्यमान स्ट्रिंगवर आधारित ऑब्जेक्ट तयार करण्यासाठी StringBuilder, तुम्हाला विधान कार्यान्वित करणे आवश्यक आहे जसे:

StringBuilder name = new StringBuilder(string);

रिकामी म्युटेबल स्ट्रिंग तयार करण्यासाठी, तुम्हाला असे विधान वापरावे लागेल:

StringBuilder name = new StringBuilder();

पद्धतींची यादी

वर्गात StringBuilderदोन डझन उपयुक्त पद्धती आहेत. येथे सर्वात महत्वाचे आहेत:

पद्धत वर्णन
StringBuilder append(obj)
पास केलेल्या ऑब्जेक्टला स्ट्रिंगमध्ये रूपांतरित करते आणि वर्तमान स्ट्रिंगमध्ये जोडते
StringBuilder insert(int index, obj)
पास केलेल्या ऑब्जेक्टला स्ट्रिंगमध्ये रूपांतरित करते आणि वर्तमान स्ट्रिंगमध्ये समाविष्ट करते
StringBuilder replace(int start, int end, String str)
स्टार्ट..एंड इंटरव्हलने निर्दिष्ट केलेल्या स्ट्रिंगचा भाग पास केलेल्या स्ट्रिंगसह पुनर्स्थित करते
StringBuilder deleteCharAt(int index)
स्ट्रिंगमधून निर्दिष्ट निर्देशांकासह वर्ण काढून टाकते
StringBuilder delete(int start, int end)
स्ट्रिंगमधून निर्दिष्ट अंतरालमधील वर्ण काढून टाकते
int indexOf(String str, int index)
वर्तमान स्ट्रिंगमध्ये सबस्ट्रिंग शोधते
int lastIndexOf(String str, int index)
वर्तमान स्ट्रिंगमधील सबस्ट्रिंग शोधते, शेवटपासून सुरू होते
char charAt(int index)
पास केलेल्या निर्देशांकावर स्ट्रिंगमधील वर्ण मिळवते
String substring(int start, int end)
निर्दिष्ट मध्यांतराने परिभाषित केलेले सबस्ट्रिंग मिळवते
StringBuilder reverse()
वर्तमान स्ट्रिंग उलट करते.
void setCharAt(int index, char)
निर्दिष्ट निर्देशांकावरील वर्ण पास केलेल्या वर्णात बदलते
int length()
वर्णांमध्ये स्ट्रिंगची लांबी मिळवते

येथे प्रत्येक पद्धतीचे थोडक्यात वर्णन आहे


2. पद्धतींचे वर्णन:

स्ट्रिंगला जोडत आहे

बदलण्यायोग्य स्ट्रिंगमध्ये काहीतरी जोडण्यासाठी ( StringBuilder), append()पद्धत वापरा. उदाहरण:

कोड वर्णन
StringBuilder builder = new StringBuilder("Hi");
builder.append("Bye");
builder.append(123);
Hi
HiBye
HiBye123

मानक स्ट्रिंगमध्ये रूपांतरित करत आहे

StringBuilderऑब्जेक्टला स्ट्रिंग ऑब्जेक्टमध्ये रूपांतरित करण्यासाठी , आपल्याला फक्त त्याची toString()पद्धत कॉल करणे आवश्यक आहे. उदाहरण

कोड आउटपुट
StringBuilder builder = new StringBuilder("Hi");
builder.append(123);
String result = builder.toString();
System.out.println(result);
Hi123

मी एखादे पात्र कसे हटवू?

बदलण्यायोग्य स्ट्रिंगमधील वर्ण हटवण्यासाठी, तुम्हाला deleteCharAt()पद्धत वापरण्याची आवश्यकता आहे. उदाहरण:

कोड आउटपुट
StringBuilder builder = new StringBuilder("Hello");
builder.deleteCharAt(2);
String result = builder.toString();
System.out.println(result);
Helo

मी स्ट्रिंगचा भाग दुसर्‍या स्ट्रिंगसह कसा बदलू?

यासाठी replace(int begin, int end, String str)पद्धत आहे. उदाहरण:

कोड आउटपुट
StringBuilder builder = new StringBuilder("Mellow");
builder.replace(2, 5, "Hello!");
String result = builder.toString();
System.out.println(result);
MeHello!w


3. स्ट्रिंगसह काम करण्याची उपयुक्त उदाहरणे

मी स्ट्रिंग उलट कशी करू?

हे करण्यासाठी एक विशेष पद्धत आहे — reverse(); उदाहरण:

कोड आउटपुट
String str = "Hello";
StringBuilder builder = new StringBuilder(str);
builder.reverse();
String result = builder.toString();
System.out.println(result);
olleH

StringBufferवर्ग

आणखी एक वर्ग आहे - स्ट्रिंगबफर, जो वर्गाचा अॅनालॉग आहे StringBuilder, परंतु त्याच्या पद्धती सुधारकाने चिन्हांकित केल्या आहेत synchronized. याचा अर्थ असा की StringBufferऑब्जेक्टवर एकाच वेळी अनेक थ्रेड्समधून प्रवेश केला जाऊ शकतो.

पण ते खूपच कमी आहे StringBuilder. जेव्हा तुम्ही Java मल्टीथ्रेडिंग क्वेस्टमध्ये मल्टीथ्रेडिंग सक्रियपणे एक्सप्लोर करण्यास प्रारंभ करता तेव्हा तुम्हाला या वर्गाची आवश्यकता असू शकते .