CodeGym /جاوا بلاگ /Random-SD /Append() جاوا ۾ طريقو: StringBuilder ۽ StringBuffer
John Squirrels
سطح
San Francisco

Append() جاوا ۾ طريقو: StringBuilder ۽ StringBuffer

گروپ ۾ شايع ٿيل
append() StringBuilder ۽ StringBuffer طبقن جو هڪ جاوا طريقو آهي جيڪو موجوده تسلسل ۾ ڪجهه قدر شامل ڪري ٿو. جيتوڻيڪ توهان کي خبر نه هئي ته append() طريقو ڇا آهي، توهان شايد اڳ ۾ ئي ان کي واضح طور استعمال ڪيو آهي. اهو تڏهن ٿيو جڏهن توهان + آپريٽر استعمال ڪندي جاوا ۾ اسٽرنگ کي ڳنڍيو. نقطو اهو آهي ته جاوا ۾ اسٽرنگ ڪنٽينشن کي لاڳو ڪيو ويو آهي StringBuilder يا StringBuffer طبقي ۽ انهن جو ضميمو () طريقو.

String، StringBuffer ۽ StringBuilder بابت تمام مختصر

جئين توهان کي خبر آهي ته اسٽرنگ ڪلاس حتمي آهي (ان ۾ ڪو به ٻار طبقو نه آهي) ۽ غير بدلائيندڙ (هن ڪلاس جا مثال ٺاهڻ کان پوءِ تبديل نه ٿي سگهن). حقيقت ۾، اسٽرنگ ڪلاس جي بي ترتيبي جي ڪري، هر عمل جي نتيجي ۾ نوان اسٽرنگ مثال ٺاهيا ويندا آهن، ۽ پراڻن کي رد ڪيو ويندو آهي، تمام گهڻو گندگي پيدا ڪري ٿو. String اعتراض ۾ تبديلين جي ڪري عارضي گندگي جي پيداوار سان معاملو ڪرڻ لاء، توهان StringBuffer يا StringBuilder ڪلاس استعمال ڪري سگهو ٿا. پوئين ٻن جي وچ ۾ بنيادي فرق اهو آهي ته StringBuffer Synchronized آهي جڏهن ته StringBuilder نه آهي. انهيءَ ڪري، StringBuffer استعمال ڪريو تارن لاءِ جيڪي گھڻن موضوعن واري ماحول ۾ بار بار تبديل ڪيا ويندا ۽ StringBuilder ھڪڙي سلسلي واري ماحول جي صورت ۾.Append() جاوا ۾ طريقو: StringBuilder ۽ StringBuffer - 1

Append() StringBuilder ۽ StringBuffer ۾

append() StringBuilder ۽ StringBuffer طبقن جي مٿين طريقن مان هڪ آهي. اهو موجوده تسلسل ۾ نئين قيمت شامل ڪري ٿو. StringBuffer ۽ StringBuilder ٻنهي طبقن ۾ 13 مختلف اوور لوڊ ٿيل ضميمه () طريقا آهن . اچو ته ڏسو StringBuilder لاءِ ضميمه جو طريقو. بهرحال، اهي ساڳيو ڪم StringBuffer جي صورت ۾.
  • عوامي StringBuilder ضميمه (بولين ب)
  • عوامي StringBuilder ضميمه (چار سي)
  • عوامي StringBuilder ضميمو (char[] str)
  • عوامي StringBuilder ضميمو (char[] str، int offset، int len)
  • عوامي StringBuilder ضميمو (CharSequence cs)
  • عوامي StringBuilder ضميمو (CharSequence cs، int start، int end)
  • عوامي StringBuilder ضميمو (ڊبل ڊي)
  • عوامي StringBuilder ضميمو (فلوٽ f)
  • عوامي StringBuilder ضميمه (int i)
  • عوامي StringBuilder ضميمو (ڊگهو lng)
  • عوامي StringBuilder ضميمو (آبجڪٽ اعتراض)
  • عوامي StringBuilder ضميمو (String str)
  • عوامي 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);
هتي جي پيداوار ٿي ويندي:
مون کي جاوا 14 پسند آهي
هتي ڇا ٿيو؟ پهرين، اسان هڪ StringBuilder ٺاهيو جنهن جي نالي سان s "I love Java" سان. پوءِ ان ۾ شامل ڪيو انٽيجر 14 استعمال ڪندي append(int) . سختي سان ڳالهائڻ، اسان هڪ انٽيجر نه، پر "14" اسٽرنگ شامل ڪيو ۽ "مون کي جاوا 14 سان پيار آهي" لاء هڪ تازه ڪاري StringBuilder قدر حاصل ڪيو. اهڙيء طرح، طريقو دليل کي هڪ StringBuilder اعتراض ۾ تبديل ڪري ٿو، ان کي موجوده StringBuilder اعتراض سان ڳنڍي ٿو، ۽ هڪ تازه ڪاري موٽائي ٿو.

StringBuilder append() مثال لاءِ Object، int، boolean ۽ String argument

ساڳي ڪهاڻي نمبر، اسٽرنگ، چار يا arrays عناصر سان گڏ ٻين سڀني اوورلوڊ ٿيل طريقن سان ٿيندي. اچو ته هڪ LegoBrick Class ۽ Color enum ٺاهي عوامي StringBuilder append(Object obj) طريقي کي ڏيکارڻ لاءِ.
//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 ڪلاس ٺاھيو جتي اسان ڏيکارينداسين بنيادي StringBuilder کي String، int، LegoBrick ۽ boolean سان. عجيب آواز، پر اهو ڪم ڪري ٿو!
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 سان پيار ڪريان ٿو Java14LegoBrick{color=RED, isConnected=false} مونکي پيار آهي Java14LegoBrick{color=RED, isConnected=false}سچو
پھريون، اسان ٺاھيو ۽ ڏيکاريو StringBuilder "I love"، پوءِ پھريون، پوءِ ترتيب وار ان ۾ شامل ڪيو append() طريقي سان ھڪ String، an int number، String جي نمائندگيءَ جي ھڪڙي شئي ۽ ھڪڙو boolean.

StringBuilder ضميمو (char[] cstr، int set، int length)

اچو ته ڏسو append() طريقو ٽن پيرا ميٽرن سان. اهو اسٽرنگ ۾ ڏنل چار صف جي ذيلي سري جي نمائندگي شامل ڪري ٿو. پوء هتي:
  • cstr اکرن جو ھڪڙو صف آھي جيڪو شامل ڪيو وڃي
  • ان کي ترتيب ڏيو پهرين ڪردار جي انڊيڪس کي شامل ڪيو وڃي
  • ڊگھائي اکرن جو مقدار آھي جيڪو شامل ڪيو وڃي.
ساڳئي طرح ٻين ضميمن () طريقن سان، هي هڪ وڌايو ويو 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);
   }
}
پيداوار آهي:
مون کي جاوا پسند آهي

StringBuilder append() طريقا CharSequence دليل سان

توهان شايد ٻه طريقا محسوس ڪيا هوندا جن وٽ چار سيڪسنس انهن جا دليل آهن.
  • عوامي StringBuilder ضميمو (CharSequence cs)
  • عوامي StringBuilder ضميمو (CharSequence cs، int start، int end)
نه سڀ شروعات ڪندڙ ڄاڻن ٿا ته CharSequence هڪ انٽرفيس آهي. دستاويزن جي مطابق CharSequence چار قدرن جو هڪ پڙهڻ لائق سلسلو آهي ۽ ڪيترن ئي مختلف قسمن جي چار ترتيبن تائين يونيفارم، صرف پڙهڻ لاءِ پهچ مهيا ڪري ٿو. انٽرفيس کي جاوا ڪلاسن جهڙوڪ String، StringBuffer، StringBuilder ۽ وڌيڪ ذريعي لاڳو ڪيو ويندو آهي. تنهن ڪري جيڪڏهن توهان نٿا ڄاڻو ته توهان جي پروگرام ۾ استعمال ڪرڻ بهتر آهي، String، StringBuffer يا StringBuilder توهان استعمال ڪري سگهو ٿا 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 ٺاهيا، انهن کي پابند String ۽ StringBuilder ۽ انهن کي پرنٽ ڪيو. اسان append() طريقو سڌو سنئون myStringBuilder تي لاڳو نٿا ڪري سگھون، ڇو ته CharSequence وٽ اھو طريقو نه آھي (جيڪڏھن توھان سمجھ ۾ نه ٿا اچن ته ڇو، توھان کي وراثت بابت ڄاڻڻ جي ضرورت آھي ۽ گڏوگڏ حوالن جي قسمن کي وڌائڻ ۽ تنگ ڪرڻ). تنهن ڪري، اسان هڪ StringBuilder ٺاهيندا آهيون ۽ ٻنهي CharSequence سان ترتيب وار ضميمه طريقي سان استعمال ڪندي. آخر ۾ اسان پنھنجي StringBuilder کي بعد ۾ شامل ڪيو آھي “is” (“i” myStringBuilder جو 5 ھين عنصر آھي ۽ s 6 آھي. ياد رھي ته طريقي ۾، آخر ۾ بيان ڪيل عنصر کي بعد ۾ خارج ڪيو ويو آھي.

StringBuffer append() بابت ڇا؟

StringBuffer.append وٽ پڻ طريقي جا 13 مختلف قسم آھن ۽ اھي بلڪل ساڳي طرح ڪم ڪن ٿا جيئن StringBuilder.
  • عوامي StringBuffer ضميمه (بولين ب)
  • عوامي اسٽرنگ بفر ضميمو (چار سي)
  • عوامي اسٽرنگ بفر ضميمو (چار[] str)
  • عوامي اسٽرنگ بفر ضميمو (چار[] str، int offset، int len)
  • عوامي اسٽرنگ بفر ضميمو (ڊبل ڊي)
  • عوامي StringBuffer ضميمه (فلوٽ f)
  • عوامي StringBuffer ضميمه (int i)
  • عوامي StringBuffer ضميمو (ڊگهو lng)
  • عوامي StringBuffer ضميمه (CharSequence s)
  • عوامي StringBuffer ضميمو (CharSequence s، int start، int end)
  • عوامي StringBuffer ضميمه (آبجڪٽ اعتراض)
  • عوامي StringBuffer ضميمه (String str)
  • عوامي StringBuffer ضميمه (StringBuffer sb)
اچو ته هڪ مثال ڏيو StringBuffer.append جو substring ۾ شامل ٿيڻ لاءِ. اسان صرف 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() کي استعمال ڪرڻ لاءِ، پڪ ڪريو ته ڪجهه ڪلاڪن جي مشق ۾ شامل ڪريو مختلف ڊيٽا جي قسمن جي نمائندگي کي اسٽرنگ ۾ شامل ڪريو.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION