Wenn ich einen Stringbuilder erstelle, der die Puffergröße 100 hat, dann diesem SB einen String hinzufüge und die .setlength Methode aufrufe, dann bleibt die Puffergröße bei 100 obwohl in der Doku drin steht, dass ein neuer SB mit der gegebenen Länge erstellt werden würde.
Insofern ist meine Frage, welchen Nutzen hat die .setlength Methode?
Wenn ich die Puffergröße reduzieren möchte, dann habe ich dafür ja die .trimToSize() Methode.
Beispiel:
Wenn ich den int Wert in sb.setLength() kleiner setze, als sb.length ausgibt, dann wirft mir
der Code eine Exception. Zum Abschneiden von Strings ist diese Methode also auch nicht zu gebrauchen.
Wozu ist also setLength(int) wirklich gut bzw. wofür wird es verwendet?
Die Doku habe ich dazu jetzt zweimal durchgelesen, aber ich werde dadurch auch nicht schlauer.
Insofern ist meine Frage, welchen Nutzen hat die .setlength Methode?
Wenn ich die Puffergröße reduzieren möchte, dann habe ich dafür ja die .trimToSize() Methode.
Beispiel:
Java:
StringBuilder sb = new StringBuilder(100); // Capacity ist jetzt 100
sb.append("Irgend ein Textstring den wir hier nutzen");
System.out.println("Puffergröße = " + sb.capacity()
+ " | Länge des Strings = "
+ sb.length() + " | "
+ sb.toString());
sb.setLength(sb.length()); // Jetzt wenden wir setLength() an
/* Hat's irgendwas gebracht, wie man wegen folgendem erwarten könnte?
"Sets the length of the character sequence. The sequence is changed to
a new character sequence whose length is specified by the argument."
*/
System.out.println("Puffergröße = " + sb.capacity()
+ " | Länge des Strings = "
+ sb.length() + " | "
+ sb.toString());
// Hm, immer noch alles wie vorher
sb.trimToSize();
System.out.println("Puffergröße = " + sb.capacity()
+ " | Länge des Strings = "
+ sb.length() + " | "
+ sb.toString());
// Nur trimToSize() hat etwas gebracht.
Wenn ich den int Wert in sb.setLength() kleiner setze, als sb.length ausgibt, dann wirft mir
der Code eine Exception. Zum Abschneiden von Strings ist diese Methode also auch nicht zu gebrauchen.
Wozu ist also setLength(int) wirklich gut bzw. wofür wird es verwendet?
Die Doku habe ich dazu jetzt zweimal durchgelesen, aber ich werde dadurch auch nicht schlauer.