String generieren

  • Themenstarter Themenstarter Gelöschtes Mitglied 20545
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 20545

Gast
Hallo!

Wenn man mehrere Strings verketten will benutzt man besser

A) StringBuffer
B) alterString += neuerStringTeil

und warum? Verwendung sei dann lediglich sowas wie Ausgabe auf der Konsole.
 
Generell sollte StringBuffer vermieden werden, weil er durch die meist unnötige Synchronisation langsamer ist als StringBuilder..

Folgendes könnte auch interessant sein:
tatsächlich ist es bei meinem Compiler egal ob ich dies schreibe:
Java:
String message = "label = " + label.getText() + ", label2 = " + label2.getText();
oder das:
Java:
String message = (new StringBuilder()).append("label = ").append(label.getText()).append(", label2 = ").append(label2.getText()).toString();
denn er generiert im ersten Fall genau das, was ich im zweiten Fall geschrieben habe.

Beim expliziten Gebrauch von StringBuilder ist man natürlich flexibler: man kann eine "capacity" angeben und man kann eine Referenz auf das StringBuilder-Objekt anlegen und in verschiedenen Programmteilen benutzen.

Gruß,
André
 
Joa, wenn die Zeit nicht so fortgeschritten gewesen wäre hätte ich vielleicht auch ausführlicher geantwortet 😳

Insbesondere der zweite Punkt (der mich, als ich ihn damals zum ersten mal gelesen und durch javap verifiziert habe, etwas überrascht hat) ist noch erwähnensert: Natürlich sollte man NICHT pauschal jede Stringverknüpfung durch einen StringBuilder ersetzen - das wäre ja auch schrecklich unleserlich :autsch:

Der StringBuilder ist (nur?) zu empfehlen, wenn es, wie angedeutet, um wiederholtes Anhängen von Strings in einer Schleife geht. Und dann eigentlich auch nur, wenn das wirklich zeitkritisch ist.
 

Zurück
Oben