append() یک متد جاوا از کلاس های StringBuilder و StringBuffer است که مقداری به یک دنباله فعلی اضافه می کند. حتی اگر نمیدانستید متد ()append چیست ، احتمالاً قبلاً به طور ضمنی از آن استفاده کردهاید. این زمانی اتفاق افتاد که شما رشته ها را در جاوا با استفاده از عملگر + به هم متصل کردید. نکته این است که الحاق رشته ها در جاوا با استفاده از کلاس StringBuilder یا StringBuffer و متد ()append آنها پیاده سازی می شود .
به طور خلاصه در مورد String، StringBuffer و StringBuilder
همانطور که احتمالا می دانید کلاس String نهایی است (کلاس فرزند ندارد) و تغییرناپذیر است (نمونه هایی از این کلاس پس از ایجاد قابل تغییر نیستند). در واقع به دلیل تغییرناپذیری کلاس String در نتیجه هر عملیات نمونه های رشته جدیدی ایجاد می شود و نمونه های قدیمی دور ریخته می شوند و زباله زیادی تولید می کنند. برای مقابله با تولید زباله های موقت به دلیل تغییرات در شی String، می توانید از کلاس های StringBuffer یا StringBuilder استفاده کنید. تفاوت اصلی بین دو مورد آخر این است که StringBuffer همگام است در حالی که StringBuilder نیست. بنابراین، از StringBuffer برای رشته هایی که اغلب در یک محیط چند رشته ای تغییر می کنند و از StringBuilder در مورد یک محیط تک رشته ای استفاده کنید.
Append() در StringBuilder و StringBuffer
append() یکی از متدهای برتر کلاس های StringBuilder و StringBuffer است. یک مقدار جدید به دنباله فعلی اضافه می کند. در هر دو کلاس StringBuffer و StringBuilder 13 متد append() سربارگذاری شده مختلف وجود دارد . بیایید به روش append برای StringBuilder نگاه کنیم. به هر حال، در مورد StringBuffer دقیقاً یکسان کار می کنند.- پیوست عمومی StringBuilder (بولیان)
- ضمیمه عمومی StringBuilder (char c)
- عمومی StringBuilder append(char[] str)
- عمومی StringBuilder append(char[] str، int offset، int len)
- ضمیمه عمومی StringBuilder (CharSequence cs)
- ضمیمه عمومی StringBuilder (CharSequence cs، int start، int end)
- ضمیمه StringBuilder عمومی (double)
- ضمیمه StringBuilder عمومی (float f)
- ضمیمه عمومی StringBuilder (int i)
- ضمیمه StringBuilder عمومی (طولانی lng)
- عمومی StringBuilder append(Object Obj)
- عمومی StringBuilder append (String str)
- عمومی StringBuilder append (StringBuffer sb)
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" ایجاد کردیم. سپس با استفاده از append(int) یک عدد صحیح 14 به آن اضافه کرد . به طور دقیق، ما نه یک عدد صحیح، بلکه رشته "14" را اضافه کردیم و مقدار StringBuilder به روز شده را به "I love Java 14" دریافت کردیم. بنابراین، متد آرگومان را به یک شی StringBuilder تبدیل میکند، آن را به یک شی StringBuilder موجود متصل میکند و یک بهروز شده را برمیگرداند.
StringBuilder append() مثال برای Object، int، boolean و آرگومان String
همین داستان با سایر متدهای سربارگذاری شده با عناصر عدد، رشته، کاراکتر یا آرایه خواهد بود. بیایید یک 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));
}
}
خروجی این است:
I love I love Java I love Java14 I love Java14LegoBrick{color=RED, isConnected=false} I love Java14LegoBrick{color=RED, isConnected=false}true
ابتدا StringBuilder "I love" را ایجاد و نمایش دادیم، سپس ابتدا با استفاده از متد append() یک String، یک عدد int، یک نمایش رشته ای از یک Object و یک Boolean به صورت متوالی به آن اضافه کردیم.
StringBuilder append(char[] cstr، int set، int length)
بیایید به متد append() با سه پارامتر نگاه کنیم. نمایشی از یک آرایه فرعی از یک آرایه char معین را به رشته اضافه می کند. بنابراین اینجا:- cstr آرایه ای از کاراکترها است که باید اضافه شوند
- آن را شاخص اولین کاراکتر قرار دهید تا اضافه شود
- طول تعداد کاراکترهایی است که باید اضافه شوند.
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
شما ممکن است متوجه دو روش شده باشید که CharSequence را به عنوان آرگومان های خود دارند.- ضمیمه عمومی StringBuilder (CharSequence cs)
- ضمیمه عمومی StringBuilder (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);
}
}
خروجی این است:
این String است StringBuilder من StringBuilder این StringBuilder است StringBuilder من StringBuilder این رشته است StringBuilder من این StringBuilder است این رشته است
ما دو CharSequence ایجاد کردیم، String و StringBuilder را به آنها متصل کردیم و آنها را چاپ کردیم. ما نمیتوانیم متد append() را مستقیماً در myStringBuilder اعمال کنیم، زیرا CharSequence این متد را ندارد (اگر دلیل آن را نمیدانید، باید در مورد وراثت و همچنین گسترش و محدود کردن انواع مرجع اطلاعاتی کسب کنید). بنابراین، ما یک StringBuilder را با استفاده از متد append به صورت متوالی با هر دو CharSequence ایجاد می کنیم و به هم متصل می کنیم. در پایان ما StringBuilder خود را با دنباله "is" اضافه کردیم ("i" پنجمین عنصر myStringBuilder و s ششمین عنصر است. به یاد داشته باشید که در روش، عنصری که به عنوان end مشخص شده است از دنباله بعدی حذف می شود.
در مورد StringBuffer append() چطور؟
StringBuffer.append همچنین دارای 13 نوع روش است و آنها دقیقاً مانند StringBuilder کار می کنند.- ضمیمه عمومی StringBuffer (بولیان)
- ضمیمه عمومی StringBuffer (charc c)
- عمومی StringBuffer append(char[] str)
- ضمیمه عمومی StringBuffer(char[] str، int offset، int len)
- ضمیمه عمومی StringBuffer (دو بار)
- ضمیمه StringBuffer عمومی (float f)
- ضمیمه عمومی StringBuffer (int i)
- ضمیمه عمومی StringBuffer (طولانی lng)
- ضمیمه عمومی StringBuffer (CharSequence s)
- ضمیمه عمومی StringBuffer (CharSequence s، int start، int end)
- الحاق عمومی StringBuffer (Object obj)
- عمومی StringBuffer ضمیمه (String str)
- ضمیمه عمومی StringBuffer (StringBuffer sb)
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 هستم
با هر نمونه از این مقاله می توانید این کار را انجام دهید. آنها کار خواهند کرد!
GO TO FULL VERSION