append(), geçerli bir diziye bazı değerler ekleyen StringBuilder ve StringBuffer sınıflarının bir Java yöntemidir. append() yönteminin ne olduğunu bilmiyor olsanız bile , muhtemelen onu önceden dolaylı olarak kullanmışsınızdır. Bu, + operatörünü kullanarak Java'da Dizeleri birleştirdiğinizde oldu. Buradaki nokta, Java'da String birleştirmenin StringBuilder veya StringBuffer sınıfı ve onların append() yöntemi kullanılarak uygulanmasıdır .
String, StringBuffer ve StringBuilder Hakkında Çok Kısaca
Muhtemelen bildiğiniz gibi, String sınıfı nihaidir (alt sınıfı yoktur) ve değişmezdir (bu sınıfın örnekleri oluşturulduktan sonra değiştirilemez). Aslında, String sınıfının değişmezliği nedeniyle, her işlemin sonucu olarak yeni dize örnekleri oluşturulur ve eskileri atılarak çok fazla çöp üretilir. String nesnesinde yapılan değişiklikler nedeniyle oluşan geçici çöplerle başa çıkmak için StringBuffer veya StringBuilder sınıflarını kullanabilirsiniz. Son ikisi arasındaki temel fark, StringBuilder değilken StringBuffer'ın Senkronize edilmiş olmasıdır. Bu nedenle, çok iş parçacıklı bir ortamda sık sık değiştirilecek dizeler için StringBuffer'ı ve tek iş parçacıklı bir ortamda olması durumunda StringBuilder'ı kullanın.
StringBuilder ve StringBuffer'da Append()
append(), StringBuilder ve StringBuffer sınıflarının en önemli yöntemlerinden biridir. Geçerli diziye yeni bir değer ekler. Hem StringBuffer hem de StringBuilder sınıflarında 13 farklı aşırı yüklenmiş append() yöntemi vardır . StringBuilder için ekleme yöntemine bakalım. Her neyse, StringBuffer durumunda tamamen aynı şekilde çalışırlar.- genel StringBuilder ekleme(boolean b)
- genel StringBuilder ekleme(char c)
- genel StringBuilder append(char[] str)
- genel StringBuilder append(char[] str, int offset, int len)
- genel StringBuilder ekleme (CharSequence cs)
- genel StringBuilder ekleme (CharSequence cs, int başlangıç, int bitiş)
- genel StringBuilder ekleme (çift d)
- genel StringBuilder ekleme(float f)
- genel StringBuilder ekleme(int i)
- genel StringBuilder eklemesi (uzun lng)
- genel StringBuilder ekleme (Nesne nesnesi)
- genel StringBuilder ekleme(String str)
- genel StringBuilder ekleme(StringBuffer sb)
Java.lang.StringBuilder.append(int i)
java.lang.StringBuilder.append(int i), varolan bir StringBuilder nesnesine bir tamsayı eklemeye izin veren bir yöntemdir. Java.lang.StringBuilder.append(int i) kullanım örneklerine bir göz atalım :
StringBuilder s = new StringBuilder(“I love Java ”);
int i = 14;
//the method appends StringBuilder and integer
s.append(i);
System.out.println(s);
Buradaki çıktı şöyle olacaktır:
Java 14'ü seviyorum
Burada ne oldu? İlk olarak, "I love Java" değerine sahip s adında bir StringBuilder oluşturduk. Ardından , append(int) kullanarak ona bir tamsayı 14 eklendi . Açıkçası, bir tamsayı değil, "14" dizesini ekledik ve "Java 14'ü seviyorum" olarak güncellenmiş bir StringBuilder değeri aldık. Böylece, yöntem argümanı bir StringBuilder nesnesine dönüştürür, varolan bir StringBuilder nesnesine bağlar ve güncellenmiş bir tane döndürür.
Nesne, int, boolean ve String argümanı için StringBuilder append() örneği
Aynı hikaye, sayı, dizi, char veya dizi elemanları ile diğer tüm aşırı yüklenmiş yöntemlerle olacaktır. Herkese açık StringBuilder append(Object obj) yöntemini göstermek için bir LegoBrick Sınıfı ve Renk sıralaması oluşturalım .
//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 +
'}';
}
}
Şimdi temel bir StringBuilder'ın String, int, LegoBrick ve boolean ile eklendiğini göstereceğimiz bir AppendDemo Sınıfı oluşturalım. Kulağa garip geliyor ama işe yarıyor!
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));
}
}
Çıktı:
Java'yı seviyorum Java14'ü seviyorum Java14LegoBrick'i seviyorum{color=RED, isConnected=false} Java14LegoBrick'i seviyorum{color=RED, isConnected=false}true
İlk olarak, StringBuilder "Seviyorum" öğesini oluşturduk ve gösterdik, ardından İlk olarak, append() yöntemini kullanarak ona sırayla bir String, bir int numarası, bir Nesnenin String temsili ve bir boole ekledik.
StringBuilder append(char[] cstr, int set, int uzunluk)
Üç parametreli append() yöntemine bakalım . Dizeye belirli bir karakter dizisinin bir alt dizisinin temsilini ekler. Yani burada:- cstr , eklenecek bir karakter dizisidir
- eklenecek ilk karakterin dizinini ayarlayın
- uzunluk, eklenecek karakter miktarıdır.
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);
}
}
Çıktı:
Java'yı seviyorum
CharSequence bağımsız değişkenli StringBuilder append() yöntemleri
Bağımsız değişkenleri CharSequence olan iki yöntem fark etmiş olabilirsiniz.- genel StringBuilder ekleme (CharSequence cs)
- genel StringBuilder ekleme (CharSequence cs, int başlangıç, int bitiş)
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);
}
}
Çıktı:
Bu String Bu, StringBuilder'ım StringBuilder'ım Bu StringBuilder'ım StringBuilder'ım Bu StringBuilder'ım Bu String benim StringBuilder'ım Bu StringBuilder'ım Bu String
İki CharSequences oluşturduk, String ve StringBuilder'ı onlara bağladık ve yazdırdık. Append() yöntemini doğrudan myStringBuilder'a uygulayamayız , çünkü CharSequence'da bu yöntem yoktur (nedenini anlamadıysanız, referans türlerinin genişletilmesi ve daraltılmasının yanı sıra kalıtım hakkında da bilgi sahibi olmanız gerekir). Bu nedenle, bir StringBuilder oluştururuz ve her iki CharSequence ile sırayla append yöntemini kullanarak birleştiririz. Sonunda StringBuilder'ımıza “is” alt dizisini ekledik (“i”, myStringBuilder'ın 5. öğesidir ve s 6. öğedir. Yöntemde, end olarak belirtilen öğenin alt diziden çıkarıldığını unutmayın.
Peki ya StringBuffer append()?
StringBuffer.append ayrıca yöntemin 13 çeşidine sahiptir ve bunlar StringBuilder ile tamamen aynı şekilde çalışır.- genel StringBuffer eki(boolean b)
- genel StringBuffer eki(char c)
- genel StringBuffer ekleme(char[] str)
- genel StringBuffer ekleme(char[] str, int ofset, int len)
- public StringBuffer ekleme(çift d)
- public StringBuffer ekleme(float f)
- genel StringBuffer eki(int i)
- public StringBuffer ekleme(uzun lng)
- genel StringBuffer ekleme(CharSequence s)
- genel StringBuffer ekleme(CharSequence s, int başlangıç, int bitiş)
- public StringBuffer ekleme(Nesne nesnesi)
- genel StringBuffer ekleme(String str)
- genel StringBuffer eki(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);
}
}
Çıktı:
Java'yı seviyorum Java14'ü seviyorum
Bunu, bu makaledeki her örnekle yapabilirsiniz. Onlar çalışacak!
GO TO FULL VERSION