CodeGym/Java Blog/यादृच्छिक/जावा मध्ये ऍपेंड() पद्धत: स्ट्रिंगबिल्डर आणि स्ट्रिंगबफर
John Squirrels
पातळी 41
San Francisco

जावा मध्ये ऍपेंड() पद्धत: स्ट्रिंगबिल्डर आणि स्ट्रिंगबफर

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
सदस्य
append() ही StringBuilder आणि StringBuffer क्लासेसची जावा पद्धत आहे जी सध्याच्या अनुक्रमात काही मूल्य जोडते. जरी तुम्हाला append() पद्धत काय आहे हे माहित नसले तरीही , तुम्ही कदाचित ती आधीच अप्रत्यक्षपणे वापरली आहे. जेव्हा तुम्ही + ऑपरेटर वापरून Java मध्ये Strings एकत्र केले तेव्हा हे घडले. मुद्दा असा आहे की Java मधील String concatenation हे StringBuilder किंवा StringBuffer क्लास आणि त्यांची append() पद्धत वापरून लागू केले जाते.

स्ट्रिंग, स्ट्रिंगबफर आणि स्ट्रिंगबिल्डर बद्दल थोडक्यात

तुम्हाला माहीत आहे की स्ट्रिंग क्लास अंतिम आहे (त्यात कोणतेही मूल वर्ग नाहीत) आणि अपरिवर्तनीय (या वर्गाची उदाहरणे निर्मितीनंतर सुधारित केली जाऊ शकत नाहीत). खरं तर, स्ट्रिंग वर्गाच्या अपरिवर्तनीयतेमुळे, प्रत्येक ऑपरेशनच्या परिणामी नवीन स्ट्रिंग उदाहरणे तयार केली जातात आणि जुनी टाकून दिली जातात, ज्यामुळे भरपूर कचरा निर्माण होतो. स्ट्रिंग ऑब्जेक्टमधील बदलांमुळे तात्पुरत्या कचरा निर्मितीला सामोरे जाण्यासाठी, तुम्ही StringBuffer किंवा StringBuilder वर्ग वापरू शकता. नंतरच्या दोनमधील मुख्य फरक असा आहे की स्ट्रिंगबफर सिंक्रोनाइझ आहे तर स्ट्रिंगबिल्डर नाही. म्हणून, स्ट्रिंग्ससाठी स्ट्रिंगबफर वापरा ज्या बहु-थ्रेडेड वातावरणात वारंवार सुधारल्या जातील आणि सिंगल-थ्रेडेड वातावरणाच्या बाबतीत स्ट्रिंगबिल्डर.Java मधील Append() पद्धत: StringBuilder आणि StringBuffer - 1

StringBuilder आणि StringBuffer मध्ये Append() करा

append() ही StringBuilder आणि StringBuffer क्लासेसच्या शीर्ष पद्धतींपैकी एक आहे. हे वर्तमान क्रमामध्ये नवीन मूल्य जोडते. StringBuffer आणि StringBuilder या दोन्ही वर्गांमध्ये 13 विविध ओव्हरलोड केलेल्या append() पद्धती आहेत . StringBuilder साठी append पद्धत पाहू. तरीही, ते स्ट्रिंगबफरच्या बाबतीत अगदी सारखेच कार्य करतात.
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न (बूलियन ब)
  • सार्वजनिक स्ट्रिंगबिल्डर परिशिष्ट (चार c)
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न (char[] str)
  • सार्वजनिक स्ट्रिंगबिल्डर परिशिष्ट(char[] str, int ऑफसेट, int len)
  • सार्वजनिक स्ट्रिंगबिल्डर परिशिष्ट (CharSequence cs)
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न (CharSequence cs, int start, int end)
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न करा (डबल डी)
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न (फ्लोट f)
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न (इंट i)
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न (लांब lng)
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न (ऑब्जेक्ट ऑब्जेक्ट)
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न (स्ट्रिंग स्ट्र)
  • सार्वजनिक StringBuilder संलग्न (StringBuffer sb)
चला त्यापैकी काही पाहू आणि append() पद्धत नेमके काय करते ते उदाहरणांसह स्पष्ट करू.

Java.lang.StringBuilder.append(int i)

java.lang.StringBuilder.append(int i) ही एक पद्धत आहे जी अस्तित्वात असलेल्या StringBuilder ऑब्जेक्टमध्ये पूर्णांक जोडण्याची परवानगी देते. Java.lang.StringBuilder.append(int i) वापरण्याच्या उदाहरणांवर एक नजर टाकूया :
StringBuilder s = new StringBuilder(I love Java);
int i = 14;
//the method appends StringBuilder and integer
s.append(i);
System.out.println(s);
येथे आउटपुट असेल:
मला Java 14 आवडते
येथे काय घडले? प्रथम, आम्ही "मला जावा आवडते" या मूल्यासह s नावाचा एक StringBuilder तयार केला. नंतर त्यात append(int) वापरून 14 पूर्णांक जोडला . काटेकोरपणे सांगायचे तर, आम्ही पूर्णांक नाही तर "14" स्ट्रिंग जोडली आणि "मला जावा 14 आवडते" असे अपडेट केलेले स्ट्रिंगबिल्डर मूल्य मिळाले. अशाप्रकारे, पद्धत वितर्क स्ट्रिंगबिल्डर ऑब्जेक्टमध्ये बदलते, त्यास विद्यमान स्ट्रिंगबिल्डर ऑब्जेक्टशी जोडते आणि अपडेट केलेले परत करते.

ऑब्जेक्ट, इंट, बुलियन आणि स्ट्रिंग आर्ग्युमेंटसाठी StringBuilder append() उदाहरण

संख्या, स्ट्रिंग, चार किंवा अॅरे घटकांसह इतर सर्व ओव्हरलोड केलेल्या पद्धतींसह समान कथा असेल. सार्वजनिक StringBuilder append(Object obj) पद्धत दाखवण्यासाठी LegoBrick क्लास आणि Color enum तयार करू .
//enum with colors
 public enum Color {
   RED, YELLOW, BLUE;
}
//LegoBrick Class code
public class LegoBrick {
   Color color;
   boolean isConnected;

   public void connect() {
       System.out.println("This brick is connected");
       this.isConnected = true;
   }

   public void disconnect() {
       System.out.println("Disconnected");
       isConnected = false;
   }

   public LegoBrick(Color color, boolean isConnected) {
       this.color = color;
       this.isConnected = isConnected;
   }

   public Color getColor() {
       return color;
   }

   public boolean isConnected() {
       return isConnected;
   }

   @Override
   public String toString() {
       return "LegoBrick{" +
              "color=" + color +
              ", isConnected=" + isConnected +
              '}';
   }
}
आता एक AppendDemo क्लास बनवूया जिथे आपण स्ट्रिंग, इंट, लेगोब्रिक आणि बुलियन सह बेसिक स्ट्रिंगबिल्डर जोडणे दाखवू. विचित्र वाटते, पण ते कार्य करते!
public class AppendDemo {

   public static void main(String[] args) {
       StringBuilder s = new StringBuilder("I love");
System.out.println(s)
//the method appends StringBuilder and String
       s.append(" Java");
       System.out.println(s);
//the method appends StringBuilder and int
       s.append(14);
       System.out.println(s);
       LegoBrick legoBrick = new LegoBrick(Color.RED, false);
//the method appends StringBuilder and LegoBrick
       s.append(legoBrick);
       System.out.println(s);
//the method appends StringBuilder and boolean
       System.out.println(s.append(5<7));
   }
}
आउटपुट आहे:
मला Java आवडते मला Java14 आवडते मला Java14LegoBrick आवडते{color=RED, isConnected=false} मला Java14LegoBrick आवडते{color=RED, isConnected=false}खरे
प्रथम, आम्ही स्ट्रिंगबिल्डर "मला आवडते" तयार केले आणि प्रदर्शित केले, नंतर प्रथम, नंतर अनुक्रमे जोडले () पद्धत वापरून स्ट्रिंग, इंट क्रमांक, ऑब्जेक्टचे स्ट्रिंग प्रतिनिधित्व आणि बुलियन.

StringBuilder append(char[] cstr, int सेट, int लांबी)

तीन पॅरामीटर्ससह append() पद्धत पाहू . हे स्ट्रिंगमध्ये दिलेल्या चार अॅरेच्या सबअॅरेचे प्रतिनिधित्व जोडते. तर येथे:
  • cstr हा जोडण्यासाठी वर्णांचा एक अॅरे आहे
  • जोडण्यासाठी पहिल्या वर्णाची अनुक्रमणिका सेट करा
  • लांबी जोडण्यासाठी वर्णांचे प्रमाण आहे.
त्याचप्रमाणे इतर append() पद्धतींप्रमाणे, हे विस्तारित StringBuilder ऑब्जेक्ट परत करते. जावा अॅप कोडचा भाग म्हणून append(char[], cstr, int set, int length) वापरण्याचे उदाहरण येथे आहे .
public class AppendDemo {
   // an example of using append(char[], cStr, int set, int length)

   public static void main(String[] args) {
       StringBuilder s = new StringBuilder("I love ");
      //here is a char's array, part of which we are going to append to s
       char[] cStr = new char[]
               {'c', 'o', 'd', 'e', 'J', 'a', 'v', 'a', '1', '4'};
       //we append 4 elements of cStr from the 4th element "J"
       s.append(cStr, 4, 4);
       System.out.println(s);
   }
}
आउटपुट आहे:
मला जावा आवडते

CharSequence युक्तिवादासह StringBuilder append() पद्धती

तुम्ही कदाचित दोन पद्धती पाहिल्या असतील ज्यात त्यांचे युक्तिवाद म्हणून CharSequence आहे.
  • सार्वजनिक स्ट्रिंगबिल्डर परिशिष्ट (CharSequence cs)
  • सार्वजनिक स्ट्रिंगबिल्डर संलग्न (CharSequence cs, int start, int end)
सर्व नवशिक्यांना माहित नाही की CharSequence हा एक इंटरफेस आहे. दस्तऐवजीकरणानुसार CharSequence हा चार मूल्यांचा वाचनीय क्रम आहे आणि अनेक प्रकारच्या चार अनुक्रमांमध्ये एकसमान, केवळ-वाचनीय प्रवेश प्रदान करतो. इंटरफेस स्ट्रिंग, स्ट्रिंगबफर, स्ट्रिंगबिल्डर आणि बरेच काही अशा जावा वर्गांद्वारे लागू केला जातो . त्यामुळे तुमच्या प्रोग्राम, स्ट्रिंग, स्ट्रिंगबफर किंवा स्ट्रिंगबिल्डरमध्ये काय वापरणे चांगले आहे हे तुम्हाला माहीत नसेल तर तुम्ही CharSequence वापरू शकता. StringBuilder append(CharSequence cs, int start, int end) जवळजवळ append(char[] cstr, int set, int length) प्रमाणे काम करतेआम्ही वर चर्चा केली. तथापि, ही पद्धत पुढील आणि शेवटचा पहिला घटक निर्दिष्ट करते. हे लक्षात ठेवणे महत्त्वाचे आहे की प्रारंभ हा नंतरच्या मध्ये समाविष्ट आहे, परंतु समाप्ती नाही (म्हणजे, त्यानंतरच्या शेवटच्या घटकापूर्वी येणारा घटक आहे). अस का? हे जावामध्ये जसे आहे तसे आहे. CharSequence म्हणजे काय आणि append(CharSequence cs) आणि append(CharSequence cs, int start, int end) पद्धती दाखवू .
public class CharSequenceDemo {

   public static void printCharSequence(CharSequence ch) {
       System.out.println(ch);
   }
       public static void main(String[] args) {
           CharSequence myString = new String("This is String ");
           printCharSequence(myString);
           CharSequence myStringBuilder = new StringBuilder("This is StringBuilder ");
           printCharSequence(myStringBuilder);
           StringBuilder s = new StringBuilder("my StringBuilder ");
//StringBuilder.append
s.append(myStringBuilder);
           System.out.println(s);
//StringBuilder.append
           s.append(myString);
           System.out.println(s);
           s.append(myString, 5,7);
           System.out.println(s);
       }
   }
आउटपुट आहे:
हे स्ट्रिंग आहे हे स्ट्रिंगबिल्डर माझे स्ट्रिंगबिल्डर आहे हे स्ट्रिंगबिल्डर माझे स्ट्रिंगबिल्डर आहे हे स्ट्रिंगबिल्डर आहे हे स्ट्रिंग माझे स्ट्रिंगबिल्डर आहे हे स्ट्रिंगबिल्डर आहे ही स्ट्रिंग आहे
आम्ही दोन CharSequences तयार केले, त्यांना स्ट्रिंग आणि स्ट्रिंगबिल्डर बांधले आणि ते प्रिंट केले. आम्ही append() पद्धत थेट myStringBuilder वर लागू करू शकत नाही, कारण CharSequence कडे ही पद्धत नाही (जर तुम्हाला का समजत नसेल, तर तुम्हाला वारसा तसेच संदर्भ प्रकारांचा विस्तार आणि संकुचित करणे आवश्यक आहे). म्हणून, आम्ही स्ट्रिंगबिल्डर तयार करतो आणि दोन्ही CharSequence सह क्रमवार जोड पद्धत वापरून जोडतो. शेवटी आम्ही आमचा स्ट्रिंगबिल्डर पुढील "is" सह जोडला ("i" हा myStringBuilder चा 5 वा घटक आहे आणि s हा 6 वा आहे. लक्षात ठेवा की पद्धतीमध्ये, शेवट म्हणून निर्दिष्ट केलेला घटक त्यानंतरच्या भागातून वगळण्यात आला आहे.

StringBuffer append() बद्दल काय?

StringBuffer.append मध्ये देखील पद्धतीचे 13 प्रकार आहेत आणि ते StringBuilder प्रमाणेच कार्य करतात.
  • सार्वजनिक स्ट्रिंगबफर परिशिष्ट (बूलियन ब)
  • सार्वजनिक स्ट्रिंगबफर परिशिष्ट (चार c)
  • सार्वजनिक स्ट्रिंगबफर परिशिष्ट​(char[] str)
  • सार्वजनिक स्ट्रिंगबफर परिशिष्ट​(char[] str, int ऑफसेट, int len)
  • सार्वजनिक स्ट्रिंगबफर जोड (दुहेरी डी)
  • सार्वजनिक स्ट्रिंगबफर जोड (फ्लोट एफ)
  • सार्वजनिक स्ट्रिंगबफर परिशिष्ट (इंट i)
  • सार्वजनिक स्ट्रिंगबफर परिशिष्ट (लांब lng)
  • सार्वजनिक स्ट्रिंगबफर परिशिष्ट (CharSequences)
  • सार्वजनिक स्ट्रिंगबफर परिशिष्ट (CharSequence s, int start, int end)
  • सार्वजनिक स्ट्रिंगबफर परिशिष्ट (ऑब्जेक्ट ऑब्जेक्ट)
  • सार्वजनिक स्ट्रिंगबफर जोड (स्ट्रिंग स्ट्र)
  • सार्वजनिक स्ट्रिंगबफर जोड (स्ट्रिंगबफर एसबी)
सबस्ट्रिंगमध्ये सामील होण्यासाठी StringBuffer.append चे उदाहरण घेऊ . आम्ही फक्त StringBuilder उदाहरण घेतो आणि कोडमधील सर्व StringBuilders बदलून StringBuffers मध्ये बदलतो.
public class AppendDemo {
   // an example of using append(char[], cStr, int set, int length)

   public static void main(String[] args) {
       StringBuffer s = new StringBuffer("I love ");
      //here is a char's array, part of which we are going to append to s
       char[] cStr = new char[]
               {'c', 'o', 'd', 'e', 'J', 'a', 'v', 'a', '1', '4'};
       //we append 4 elements of cStr from the 4th element "J"
//with StringBuffer.append
       s.append(cStr, 4, 4);
       System.out.println(s);
//StringBuffer.append adds int 14 to s
s.append(14);
System.out.println(s);
   }
}
आउटपुट आहे:
मला जावा आवडते मला Java14 आवडते
आपण या लेखाच्या प्रत्येक उदाहरणासह हे करू शकता. ते काम करतील!

निष्कर्ष

StringBuilder आणि StringBuffer बहुतेक फंक्शन्स सामायिक करत असल्याने, दोन्ही वर्गांमध्ये append() पद्धत वापरण्याचे समान मार्ग आहेत यात आश्चर्य नाही . विकसकांसाठी ही चांगली बातमी आहे — तुम्हाला प्रत्येक वर्गासाठी स्वतंत्र पद्धती शिकण्याची गरज नाही. असे म्हटल्यावर, append() वापरण्याच्या विविध पद्धतींचा विचार करून , स्ट्रिंगमध्ये विविध डेटा प्रकारांचे प्रतिनिधित्व जोडून काही तासांचा सराव करण्याचे सुनिश्चित करा.
टिप्पण्या
  • लोकप्रिय
  • नवीन
  • जुने
टिप्पणी करण्यासाठी तुम्ही साईन इन केलेले असणे आवश्यक आहे
या पानावर अजून कोणत्याही टिप्पण्या नाहीत