"Dobbiamo solo coprire StringBuilder, e poi penso che abbiamo finito."

"Come già sai, StringBuilder è come la classe String, tranne per il fatto che è mutabile."

"E ricordo anche che il compilatore genera codice che utilizza StringBuilder quando semplicemente aggiungiamo stringhe insieme."

"Sì, hai ragione. Che memoria straordinaria hai. Del resto, tutti i robot ce l'hanno. Me lo dimentico sempre."

"Esaminiamo cosa puoi fare usando la classe StringBuilder :"

1) Ho una normale stringa e voglio renderla mutabile. Come lo faccio?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);

2) Voglio aggiungere un carattere a una stringa mutabile esistente?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.append("!");

3) E come riconvertire un StringBuilder in una stringa?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.append("!");
s = s2.toString();

4) E se devo eliminare un carattere?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.deleteCharAt(2); //Becomes "Beder"

5) Come posso sostituire parte di una stringa con un'altra?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.replace (3, 5, "_DE_"); //Becomes "Ben_DE_r"

6) Cosa succede se devo invertire una stringa?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.reverse(); //Becomes "redneB";

"Fantastico. Grazie, Ellie, tutto ha un senso."

"Sono felice che ti sia piaciuto."

"Vorrei anche ricordarti qualcosa che Bilaabo avrebbe dovuto dirti."

"C'è un'altra classe chiamata StringBuffer . È come StringBuilder , ma i suoi metodi sono dichiarati come sincronizzati . Ciò significa che prima di qualsiasi chiamata a uno dei suoi metodi la macchina Java controlla se l'oggetto è occupato; se non lo è, la JVM lo contrassegna come occupato. Dopo essere usciti dal metodo, l'oggetto viene rilasciato. Di conseguenza, queste chiamate sono più lente. Non dovresti usare StringBuffer a meno che non sia necessario."

"Ma se hai bisogno di una stringa mutabile che verrà utilizzata su più thread, non troverai niente di meglio di StringBuffer ."

"Grazie per l'informazione. Penso che un giorno potrebbe tornare utile."