append() è un metodo Java delle classi StringBuilder e StringBuffer che aggiunge un valore a una sequenza corrente. Anche se non sapevi cosa sia il metodo append() , probabilmente lo hai già usato implicitamente. Questo è successo quando hai concatenato le stringhe in Java usando l'operatore +. Il punto è che la concatenazione di stringhe in Java è implementata utilizzando la classe StringBuilder o StringBuffer e il loro metodo append() .
Molto brevemente su String, StringBuffer e StringBuilder
Come probabilmente saprai, la classe String è definitiva (non ha classi figlie) e immutabile (le istanze di questa classe non possono essere modificate dopo la creazione). Infatti, a causa dell'immutabilità della classe String, vengono create nuove istanze di stringa come risultato di ogni operazione e quelle vecchie vengono scartate, generando molta spazzatura. Per gestire la generazione di spazzatura temporanea dovuta a modifiche all'oggetto String, è possibile utilizzare le classi StringBuffer o StringBuilder. La differenza principale tra gli ultimi due è che StringBuffer è sincronizzato mentre StringBuilder no. Quindi, usa StringBuffer per le stringhe che verranno modificate frequentemente in un ambiente multi-thread e StringBuilder in caso di un ambiente a thread singolo.Append() in StringBuilder e StringBuffer
append() è uno dei migliori metodi delle classi StringBuilder e StringBuffer. Aggiunge un nuovo valore alla sequenza corrente. Ci sono 13 diversi metodi append() sovraccaricati in entrambe le classi StringBuffer e StringBuilder. Diamo un'occhiata al metodo append per StringBuilder. Ad ogni modo, funzionano esattamente allo stesso modo in caso di StringBuffer.- public StringBuilder append(booleano b)
- public StringBuilder append(char c)
- public StringBuilder append(char[] str)
- public StringBuilder append(char[] str, int offset, int len)
- public StringBuilder append(CharSequence cs)
- public StringBuilder append(CharSequence cs, int start, int end)
- public StringBuilder append(doppia d)
- public StringBuilder append(float f)
- public StringBuilder append(int i)
- public StringBuilder append(long lng)
- public StringBuilder append(Oggetto obj)
- public StringBuilder append(String str)
- public StringBuilder append(StringBuffer sb)
Java.lang.StringBuilder.append(int i)
java.lang.StringBuilder.append(int i) è un metodo che consente di aggiungere un numero intero a un oggetto StringBuilder esistente. Diamo un'occhiata agli esempi di utilizzo di 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);
L'output qui sarà:
Adoro Java 14
Cos'è successo qua? Innanzitutto, abbiamo creato uno StringBuilder denominato s con il valore "I love Java". Quindi aggiunto ad esso un numero intero 14 usando append(int) . A rigor di termini, non abbiamo aggiunto un numero intero, ma la stringa "14" e ottenuto un valore StringBuilder aggiornato a "I love Java 14". Pertanto, il metodo trasforma l'argomento in un oggetto StringBuilder, lo associa a un oggetto StringBuilder esistente e ne restituisce uno aggiornato.
StringBuilder append() esempio per Object, int, boolean e argomento String
La stessa storia sarà con tutti gli altri metodi sovraccaricati con elementi number, string, char o array. Creiamo una LegoBrick Class e Color enum per dimostrare il metodo pubblico 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 +
'}';
}
}
Ora creiamo una classe AppendDemo in cui mostreremo l'aggiunta di uno StringBuilder di base con String, int, LegoBrick e boolean. Sembra strano, ma funziona!
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));
}
}
L'uscita è:
Amo Amo Java Amo Java14 Amo Java14LegoBrick{color=RED, isConnected=false} Amo Java14LegoBrick{color=RED, isConnected=false}true
Innanzitutto, abbiamo creato e visualizzato StringBuilder "I love", quindi First, quindi aggiunto in sequenza ad esso utilizzando il metodo append() una stringa, un numero int, una rappresentazione String di un oggetto e un valore booleano.
StringBuilder append(char[] cstr, int set, int lunghezza)
Diamo un'occhiata al metodo append() con tre parametri. Aggiunge alla stringa una rappresentazione di un sottoarray di un dato array di caratteri. Ecco:- cstr è un array di caratteri da aggiungere
- impostalo come indice del primo carattere da aggiungere
- length è la quantità di caratteri da aggiungere.
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);
}
}
L'uscita è:
Adoro Java
Metodi StringBuilder append() con argomento CharSequence
Potresti aver notato due metodi che hanno CharSequence come argomenti.- public StringBuilder append(CharSequence cs)
- public StringBuilder 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);
}
}
L'uscita è:
Questo è String Questo è StringBuilder mio StringBuilder Questo è StringBuilder mio StringBuilder Questo è StringBuilder Questo è String mio StringBuilder Questo è StringBuilder Questo è String è
Abbiamo creato due CharSequence, associato String e StringBuilder a loro e li abbiamo stampati. Non possiamo applicare il metodo append() direttamente a myStringBuilder, poiché CharSequence non ha questo metodo (se non capisci perché, devi capire l'ereditarietà così come l'espansione e il restringimento dei tipi di riferimento). Pertanto, creiamo uno StringBuilder con e lo concateniamo utilizzando il metodo append in sequenza con entrambi CharSequence. Alla fine abbiamo aggiunto al nostro StringBuilder la sottosequenza “is” (“i” è un quinto elemento di myStringBuilder e s è il sesto. Ricorda che nel metodo, l'elemento specificato come end è escluso dalla sottosequenza.
Che dire di StringBuffer append()?
StringBuffer.append ha anche 13 varianti del metodo e funzionano esattamente allo stesso modo di StringBuilder.- public StringBuffer append(booleano b)
- public StringBuffer append(char c)
- public StringBuffer append(char[] str)
- public StringBuffer append(char[] str, int offset, int len)
- public StringBuffer append(doppia d)
- public StringBuffer append(float f)
- public StringBuffer append(int i)
- public StringBuffer append(long lng)
- public StringBuffer append(CharSequence s)
- public StringBuffer append(CharSequence s, int start, int end)
- public StringBuffer append(oggetto obj)
- public StringBuffer append(String str)
- public StringBuffer append(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);
}
}
L'uscita è:
Amo Java, amo Java14
Puoi farlo con ogni esempio di questo articolo. Funzioneranno!
GO TO FULL VERSION