Java: StringBuffer & Verkettung

7

Ich verwende StringBuffer in Java, um Strings wie folgt zu kombinieren:

%Vor%

Ich würde gerne wissen, ob es eine Methode gibt (obwohl ich bei einem kurzen Blick auf die Dokumentation nichts gefunden habe) oder eine andere Möglichkeit, "Padding" hinzuzufügen.

Lass es mich erklären; Jedes Mal, wenn ich etwas an die Zeichenfolge anfüge, möchte ich am Ende ein Leerzeichen hinzufügen:

%Vor%

und ich habe mehrere Anrufe anhängen .. und jedes Mal möchte ich ein Leerzeichen hinzufügen. Gibt es eine Möglichkeit, das Objekt so festzulegen, dass nach jedem Anhängen automatisch ein Leerzeichen hinzugefügt wird?

BEARBEITEN -

%Vor%

Ich werde StringBuilder zwar als grom vorgeschlagen, aber so sieht der Code jetzt aus

    
Jean Paul Galea 30.09.2008, 08:13
quelle

6 Antworten

9

Ich denke, dass dies entweder mit einer Hilfsmethode (ungeprüfter Code) einfacher gehandhabt wird:

%Vor%

Oder sogar ein Builder-Muster mit einer fließenden Oberfläche (auch ungeprüfter Code):

%Vor%

Hier ist ein Artikel zu diesem Thema.

Hoffe es hilft! :)

    
kolrie 30.09.2008, 11:43
quelle
6

Sie sollten StringBuilder verwenden.

  

Wenn möglich, wird empfohlen, dass diese Klasse vor StringBuffer verwendet wird, da sie unter den meisten Implementierungen schneller ist.

    
grom 30.09.2008 08:34
quelle
4

StringBuffer ist endgültig. Sie können daraus nicht ableiten. Die beste Lösung ist wirklich, die Polsterung für sich selbst hinzuzufügen. Schreiben Sie eine Methode dafür und verwenden Sie eine PADDING-Konstante, damit Sie sie einfach ändern oder besser in einen Parameter einfügen können.

    
Dimo 30.09.2008 08:22
quelle
2

Fügen Sie einfach den Platz selbst hinzu, es ist einfach genug, wie in Ihrem eigenen Beispiel.

    
Johan 30.09.2008 08:15
quelle
2

Können Sie keine neue Klasse erstellen, die StringBuffer umschließt und eine appendWithTrailingSpace() -Methode hinzufügt?

%Vor%

(Obwohl Sie Ihre Methode vielleicht etwas kürzer nennen möchten.)

    
Dave Webb 30.09.2008 08:20
quelle
1

Eine andere Möglichkeit besteht darin, dass StringBuilder-Objekte sich beim Aufruf von append selbst zurückgeben, dh Sie können Folgendes tun:

%Vor%

Nicht ganz so glatt, aber es ist wahrscheinlich eine einfachere Lösung als die + "" Methode.

Eine andere Möglichkeit besteht darin, eine Wrapper-Klasse wie PaddedStringBuilder zu erstellen, die dieselben Methoden bereitstellt, aber die gewünschte Füllung anwendet, da Sie nicht erben können.

    
Guvante 30.09.2008 08:44
quelle