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जब आप जावा मल्टीथ्रेडिंग खोज में सक्रिय रूप से मल्टीथ्रेडिंग का पता लगाना शुरू करते हैं तो आपको इस वर्ग की आवश्यकता हो सकती है।