Ce face StringBuilder.append
append există în multe variante, câte una pentru fiecare tip: String, char, int, double, boolean, Object. Valoarea este transformată în text exact cum ar face String.valueOf, apoi este pusă la sfârșit.
Metoda returnează același obiect, deci poți scrie apeluri în lanț: sb.append("Ana").append(' ').append(21). Un null adăugat apare ca textul "null".
Varianta append(text, start, end) adaugă doar caracterele de la poziția start până la end (exclusiv), fără să creezi întâi un subșir.
Parametri
| Parametru | Descriere |
|---|---|
s / i / c ... |
Valoarea de adăugat, de orice tip. |
start, end |
Pentru varianta cu CharSequence: bucata de copiat, end exclusiv. |
Ce returnează
Același obiect StringBuilder (this), ca să poți continua lanțul.
Exemple
Exemplul 1: Valori de tipuri diferite
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("Ana").append(' ').append(21).append(" ani, medie ").append(9.45);
sb.append(", bursă: ").append(true);
System.out.println(sb);
String lipsa = null;
sb.setLength(0);
sb.append("Telefon: ").append(lipsa);
System.out.println(sb);
}
}
Rezultat
Ana 21 ani, medie 9.45, bursă: true
Telefon: null
Exemplul 2: Un tabel cu note
Construim un text pe mai multe rânduri și îl afișăm o singură dată.
public class Main {
public static void main(String[] args) {
String[] elevi = {"Ion", "Elena", "Mihai"};
int[] note = {8, 10, 7};
StringBuilder tabel = new StringBuilder();
for (int i = 0; i < elevi.length; i++) {
tabel.append(i + 1).append(". ").append(elevi[i]).append(": ").append(note[i]).append('\n');
}
System.out.print(tabel);
}
}
Rezultat
1. Ion: 8
2. Elena: 10
3. Mihai: 7
Exemplul 3: Doar o parte dintr-un text
append(text, 0, 4) copiază caracterele 0, 1, 2 și 3.
public class Main {
public static void main(String[] args) {
String oras = "Iași, România";
StringBuilder sb = new StringBuilder("Oraș: ");
sb.append(oras, 0, 4);
System.out.println(sb);
}
}
Rezultat
Oraș: Iași
Greșeli frecvente
- Scrii
sb.append("a" + x + "b"): operatorul+construiește oricum un șir temporar. Mai curat:sb.append("a").append(x).append("b"). - Adaugi un
charcu unint:sb.append('A' + 1)adaugă numărul66, nu literaB, pentru că'A' + 1este unint.
Comenzi înrudite
StringBuilder: Un text care se poate modifica pe loc: adaugi, inserezi și ștergi fără să creezi un șir nou la fiecare pas.StringBuilder.insert: Inserează un text sau o valoare la o poziție dată; caracterele de după poziție se mută spre dreapta.String.valueOf: Transformă orice valoare (număr, boolean, char, obiect, char[]) în String; copyValueOf face un șir dintr-un char[].String.join: Lipește mai multe șiruri într-unul singur, cu un separator între ele (opusul lui split).