append() е Java метод на класове StringBuilder и StringBuffer, който добавя няHowва стойност към текуща последователност. Дори и да не знаете Howво представлява методът append() , вероятно вече сте го използвали имплицитно. Това се случи, когато сте свързали низове в Java с помощта на оператора +. Въпросът е, че конкатенацията на низове в Java се реализира с помощта на класа StringBuilder or StringBuffer и техния метод append() .
Много накратко за String, StringBuffer и StringBuilder
Както вероятно знаете класът String е окончателен (няма дъщерни класове) и неизменен (екземплярите на този клас не могат да бъдат модифицирани след създаването). Всъщност, поради неизменността на класа String, в резултат на всяка операция се създават нови екземпляри на низове, а старите се изхвърлят, което генерира много боклук. За да се справите с генерирането на временен боклук поради модификации на обекта String, можете да използвате класовете StringBuffer or StringBuilder. Основната разлика между последните две е, че StringBuffer е синхронизиран, докато StringBuilder не е. Следователно използвайте StringBuffer за низове, които ще бъдат модифицирани често в многонишкова среда и StringBuilder в случай на еднонишкова среда.
Append() в StringBuilder и StringBuffer
append() е един от най-добрите методи на класовете StringBuilder и StringBuffer. Той добавя нова стойност към текущата последователност. Има 13 различни претоварени метода append() Howто в класовете StringBuffer, така и в StringBuilder. Нека да разгледаме метода append за StringBuilder. Както и да е, те работят точно по същия начин в случай на StringBuffer.- публичен StringBuilder добавяне (булев b)
- публично добавяне на StringBuilder (char c)
- public StringBuilder append(char[] str)
- public StringBuilder append(char[] str, int offset, int len)
- публично добавяне на StringBuilder (CharSequence cs)
- публичен StringBuilder добавяне (CharSequence cs, int начало, int край)
- публичен StringBuilder добавяне (двойно d)
- публичен StringBuilder добавяне (float f)
- публичен StringBuilder добавяне (int i)
- публично добавяне на StringBuilder (дълъг lng)
- публично добавяне на StringBuilder (Object obj)
- публично добавяне на StringBuilder (String str)
- публично добавяне на StringBuilder (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);
Резултатът тук ще бъде:
Обичам Java 14
Какво е станало тук? Първо създадохме StringBuilder с име s със стойността „I love Java“. След това добави към него цяло число 14 с помощта на append(int) . Строго погледнато, добавихме не цяло число, а низа "14" и получихме актуализирана стойност на StringBuilder на "I love Java 14". По този начин методът превръща аргумента в StringBuilder обект, свързва го със съществуващ StringBuilder обект и връща актуализиран такъв.
StringBuilder append() пример за аргумент Object, int, boolean и String
Същата история ще бъде и с всички останали претоварени методи с елементи число, низ, символ or масиви. Нека създадем LegoBrick Class and 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 Class, където ще покажем добавянето на основен 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));
}
}
Резултатът е:
Обичам Обичам Java Обичам Java14 Обичам Java14LegoBrick{color=RED, isConnected=false} Обичам Java14LegoBrick{color=RED, isConnected=false}true
Първо създадохме и показахме StringBuilder „Обичам“, след това Първо, след което последователно добавихме към него с помощта на метода append() String, int число, String представяне на обект и boolean.
StringBuilder append(char[] cstr, int set, int length)
Нека да разгледаме метода append() с три параметъра. Той добавя представяне на подмасив на даден масив от символи към низа. Така че тук:- 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);
}
}
Резултатът е:
Обичам Java
StringBuilder append() методи с аргумент CharSequence
Може да сте забелязали два метода, които имат CharSequence като аргументи.- публично добавяне на StringBuilder (CharSequence cs)
- публичен StringBuilder добавяне (CharSequence cs, int начало, int край)
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 Това е String моят StringBuilder Това е StringBuilder Това е String е
Създадохме две CharSequence, свързахме String и StringBuilder с тях и ги отпечатахме. Не можем да приложим метода append() директно към myStringBuilder, тъй като CharSequence няма този метод (ако не разбирате защо, трябва да разберете за наследяването, Howто и за разширяването и стесняването на референтните типове). Следователно, ние създаваме StringBuilder с и свързваме с помощта на метода append последователно с CharSequence. В края добавихме нашия StringBuilder с подпоследователност „is“ („i“ е 5-ти елемент на myStringBuilder и s е 6-ти. Не забравяйте, че в метода елементът, посочен като end, е изключен от подпоследователността.
Какво ще кажете за StringBuffer append()?
StringBuffer.append също има 13 варианта на метода и те работят точно по същия начин като StringBuilder.- публично добавяне на StringBuffer (булев b)
- публично добавяне на StringBuffer (char c)
- public StringBuffer append(char[] str)
- public StringBuffer append(char[] str, int offset, int len)
- публично добавяне на StringBuffer (двойно d)
- публичен StringBuffer добавяне (float f)
- публично добавяне на StringBuffer (int i)
- публично добавяне на StringBuffer (дълъг lng)
- публично добавяне на StringBuffer (CharSequence s)
- публично добавяне на StringBuffer (CharSequence s, int начало, int край)
- публично добавяне на 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);
}
}
Резултатът е:
Обичам Java Обичам Java14
Можете да го направите с всеки пример от тази статия. Те ще работят!
GO TO FULL VERSION