CodeGym /Java Blog /சீரற்ற /ஜாவாவில் Append() முறை: StringBuilder மற்றும் StringBuffe...
John Squirrels
நிலை 41
San Francisco

ஜாவாவில் Append() முறை: StringBuilder மற்றும் StringBuffer

சீரற்ற குழுவில் வெளியிடப்பட்டது
append() என்பது StringBuilder மற்றும் StringBuffer வகுப்புகளின் ஜாவா முறையாகும், இது தற்போதைய வரிசைக்கு சில மதிப்பைச் சேர்க்கிறது. append() முறை என்னவென்று உங்களுக்குத் தெரியாவிட்டாலும் , நீங்கள் அதை மறைமுகமாகப் பயன்படுத்தியிருக்கலாம். + ஆபரேட்டரைப் பயன்படுத்தி ஜாவாவில் ஸ்டிரிங்ஸை இணைக்கும்போது இது நடந்தது. விஷயம் என்னவென்றால், ஜாவாவில் சரம் இணைப்பானது StringBuilder அல்லது StringBuffer வகுப்பு மற்றும் அவற்றின் append() முறையைப் பயன்படுத்தி செயல்படுத்தப்படுகிறது .

String, StringBuffer மற்றும் StringBuilder பற்றி மிக சுருக்கமாக

உங்களுக்குத் தெரிந்தபடி, சரம் வகுப்பு இறுதியானது (இது குழந்தை வகுப்புகள் இல்லை) மற்றும் மாறாதது (இந்த வகுப்பின் நிகழ்வுகளை உருவாக்கிய பிறகு மாற்ற முடியாது). உண்மையில், சரம் வகுப்பின் மாறாத தன்மை காரணமாக, ஒவ்வொரு செயல்பாட்டின் விளைவாக புதிய சரம் நிகழ்வுகள் உருவாக்கப்படுகின்றன, மேலும் பழையவை நிராகரிக்கப்படுகின்றன, இதனால் நிறைய குப்பைகள் உருவாகின்றன. சரம் பொருளில் மாற்றங்கள் காரணமாக தற்காலிக குப்பைகளை உருவாக்க, நீங்கள் StringBuffer அல்லது StringBuilder வகுப்புகளைப் பயன்படுத்தலாம். பிந்தைய இரண்டிற்கும் இடையேயான முக்கிய வேறுபாடு என்னவென்றால், StringBuilder ஒத்திசைக்கப்படவில்லை. எனவே, பல-திரிக்கப்பட்ட சூழலில் அடிக்கடி மாற்றப்படும் சரங்களுக்கு StringBuffer ஐப் பயன்படுத்தவும் மற்றும் ஒற்றை-திரிக்கப்பட்ட சூழலில் StringBuilder ஐப் பயன்படுத்தவும்.ஜாவாவில் Append() முறை: StringBuilder மற்றும் StringBuffer - 1

StringBuilder மற்றும் StringBuffer இல் இணைக்கவும்().

append() என்பது StringBuilder மற்றும் StringBuffer வகுப்புகளின் சிறந்த முறைகளில் ஒன்றாகும். இது தற்போதைய வரிசைக்கு ஒரு புதிய மதிப்பைச் சேர்க்கிறது. StringBuffer மற்றும் StringBuilder வகுப்புகளில் 13 பல்வேறு ஓவர்லோடட் append() முறைகள் உள்ளன . StringBuilder க்கான append முறையைப் பார்ப்போம். எப்படியிருந்தாலும், அவை StringBuffer விஷயத்தில் சரியாக வேலை செய்கின்றன.
  • பொது ஸ்டிரிங் பில்டர் இணைப்பு (பூலியன் பி)
  • பொது StringBuilder இணைப்பு(சார் c)
  • பொது StringBuilder append(char[] str)
  • பொது StringBuilder append(char[] str, int offset, int len)
  • பொது StringBuilder append(CharSequence cs)
  • பொது StringBuilder append(CharSequence cs, int start, int end)
  • பொது StringBuilder இணைப்பு (இரட்டை ஈ)
  • பொது StringBuilder append(float f)
  • பொது StringBuilder இணைப்பு(int i)
  • பொது StringBuilder இணைப்பு (நீண்ட அளவு)
  • பொது StringBuilder இணைப்பு (பொருள் பொருள்)
  • பொது StringBuilder இணைப்பு (சரம் str)
  • பொது StringBuilder append(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); 
இங்கே வெளியீடு இருக்கும்:
நான் ஜாவா 14 ஐ விரும்புகிறேன்
இங்கே என்ன நடந்தது? முதலில், "ஐ லவ் ஜாவா" என்ற மதிப்புடன் s என்ற பெயரிடப்பட்ட StringBuilder ஐ உருவாக்கினோம். பின்னர் அதில் append(int) ஐப் பயன்படுத்தி ஒரு முழு எண் 14ஐச் சேர்த்தது . கண்டிப்பாகச் சொன்னால், நாங்கள் ஒரு முழு எண்ணை அல்ல, "14" என்ற சரத்தை சேர்த்துள்ளோம், மேலும் "I love Java 14" க்கு புதுப்பிக்கப்பட்ட StringBuilder மதிப்பைப் பெற்றுள்ளோம். இவ்வாறு, முறையானது வாதத்தை ஒரு StringBuilder பொருளாக மாற்றி, ஏற்கனவே உள்ள StringBuilder பொருளுடன் பிணைத்து, புதுப்பிக்கப்பட்ட ஒன்றை வழங்குகிறது.

StringBuilder ஆப்ஜெக்ட், இன்ட், பூலியன் மற்றும் சரம் வாதத்திற்கான உதாரணம்

எண், சரம், எழுத்து அல்லது அணிவரிசை கூறுகளுடன் கூடிய மற்ற எல்லா ஓவர்லோட் முறைகளிலும் இதே கதை இருக்கும். பொது StringBuilder append(Object obj) முறையை விளக்குவதற்கு LegoBrick Class மற்றும் 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 வகுப்பை உருவாக்குவோம், அங்கு String, int, LegoBrick மற்றும் boolean உடன் ஒரு அடிப்படை StringBuilder ஐ இணைப்பதைக் காண்பிப்போம். வித்தியாசமாகத் தெரிகிறது, ஆனால் அது வேலை செய்கிறது!

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));
   }
}
வெளியீடு:
நான் ஜாவாவை விரும்புகிறேன், ஜாவா 14 ஐ விரும்புகிறேன், ஜாவா 14 லெகோபிரிக்கை விரும்புகிறேன்
முதலில், StringBuilder "ஐ லவ்" என்பதை உருவாக்கி காண்பித்தோம், பின்னர் முதலில், append() முறையில் ஒரு சரம், ஒரு எண்ணான எண், ஒரு பொருளின் சரம் மற்றும் பூலியன் ஆகியவற்றைப் பயன்படுத்தி வரிசையாகச் சேர்த்தோம்.

StringBuilder append(char[] cstr, int set, int length)

மூன்று அளவுருக்கள் கொண்ட 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() முறைகள்

சார்சீக்வென்ஸை வாதங்களாகக் கொண்ட இரண்டு முறைகளை நீங்கள் கவனித்திருக்கலாம்.
  • பொது StringBuilder append(CharSequence cs)
  • பொது StringBuilder append(CharSequence cs, int start, int end)
CharSequence என்பது ஒரு இடைமுகம் என்பது ஆரம்பநிலை அனைவருக்கும் தெரியாது. ஆவணங்களின்படி CharSequence என்பது எரிப்பு மதிப்புகளின் படிக்கக்கூடிய வரிசையாகும், மேலும் பல்வேறு வகையான சார் வரிசைகளுக்கு ஒரே மாதிரியான, படிக்க-மட்டும் அணுகலை வழங்குகிறது. இந்த இடைமுகம் String, StringBuffer, StringBuilder மற்றும் பல போன்ற ஜாவா வகுப்புகளால் செயல்படுத்தப்படுகிறது . உங்கள் புரோகிராம், ஸ்ட்ரிங், ஸ்ட்ரிங்பஃபர் அல்லது ஸ்டிரிங் பில்டரில் எது சிறந்தது என்று உங்களுக்குத் தெரியாவிட்டால், நீங்கள் சார்சீக்வென்ஸைப் பயன்படுத்தலாம். 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);
       }
   }
வெளியீடு:
இது சரம் இது ஸ்டிரிங் பில்டர் என் ஸ்டிரிங் பில்டர் இது ஸ்டிரிங் பில்டர் என் ஸ்டிரிங் பில்டர் இது ஸ்ட்ரிங் பில்டர்
நாங்கள் இரண்டு சார்சீக்வென்ஸை உருவாக்கி, அவற்றுடன் சரம் மற்றும் ஸ்டிரிங் பில்டரை இணைத்து அச்சிட்டோம். சார்சீக்வென்ஸில் இந்த முறை இல்லாததால், append() முறையை நேரடியாக myStringBuilder க்கு பயன்படுத்த முடியாது (ஏன் என்று உங்களுக்கு புரியவில்லை என்றால், நீங்கள் பரம்பரை மற்றும் குறிப்பு வகைகளை விரிவுபடுத்துதல் மற்றும் சுருக்குதல் ஆகியவற்றைக் கண்டுபிடிக்க வேண்டும்). எனவே, சார்சீக்வென்ஸ் இரண்டிலும் வரிசையாக append முறையைப் பயன்படுத்தி ஒரு StringBuilder ஐ உருவாக்குகிறோம். முடிவில் எங்கள் StringBuilder ஐ "is" ("i" என்பது myStringBuilder இன் 5வது உறுப்பு மற்றும் s என்பது 6வது உறுப்பு ஆகும். இந்த முறையில், முடிவு எனக் குறிப்பிடப்பட்ட உறுப்பு பின்தொடர்விலிருந்து விலக்கப்பட்டுள்ளது என்பதை நினைவில் கொள்ளவும்.

StringBuffer append() பற்றி என்ன?

StringBuffer.append முறையின் 13 வகைகளையும் கொண்டுள்ளது மற்றும் அவை StringBuilder போலவே செயல்படுகின்றன.
  • பொது StringBuffer இணைப்பு (பூலியன் b)
  • பொது StringBuffer இணைப்பு (char c)
  • பொது StringBuffer இணைப்பு (char[] str)
  • பொது StringBuffer இணைப்பு (char[] str, int offset, int len)
  • பொது StringBuffer இணைப்பு (இரட்டை ஈ)
  • பொது StringBuffer இணைப்பு (float f)
  • பொது StringBuffer இணைப்பு (int i)
  • பொது StringBuffer இணைப்பு (நீண்ட நீளம்)
  • பொது StringBuffer இணைப்பு (CharSequence கள்)
  • பொது StringBuffer இணைப்பு (CharSequence s, int start, int end)
  • பொது StringBuffer இணைப்பு (பொருள் பொருள்)
  • பொது StringBuffer இணைப்பு (சரம் str)
  • பொது StringBuffer இணைப்பு (StringBuffer sb)
ஒரு சப்ஸ்ட்ரிங்கில் சேர StringBuffer.append இன் உதாரணத்தைப் பார்ப்போம் . நாங்கள் StringBuilder உதாரணத்தை எடுத்து, குறியீட்டில் உள்ள அனைத்து StringBuilderகளையும் 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);
   }
}
வெளியீடு:
நான் ஜாவாவை விரும்புகிறேன், ஜாவா 14 ஐ விரும்புகிறேன்
இந்த கட்டுரையின் ஒவ்வொரு உதாரணத்திலும் நீங்கள் அதைச் செய்யலாம். அவர்கள் வேலை செய்வார்கள்!

முடிவுரை

StringBuilder மற்றும் StringBuffer ஆகியவை பெரும்பாலான செயல்பாடுகளைப் பகிர்ந்துகொள்வதால், append() முறையைப் பயன்படுத்த இரண்டு வகுப்புகளும் ஒரே மாதிரியான வழிகளைக் கொண்டிருப்பதில் ஆச்சரியமில்லை . டெவலப்பர்களுக்கு இது ஒரு நல்ல செய்தி — நீங்கள் ஒவ்வொரு வகுப்பிற்கும் தனித்தனி முறைகளைக் கற்றுக்கொள்ள வேண்டியதில்லை. append() ஐப் பயன்படுத்துவதற்கான பல்வேறு வழிகளைக் கருத்தில் கொண்டு , ஒரு சரத்தில் வெவ்வேறு தரவு வகைகளின் பிரதிநிதித்துவங்களைச் சேர்ப்பதை சில மணிநேர பயிற்சியில் வைப்பதை உறுதிசெய்யவும்.
கருத்துக்கள்
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION