Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage
<< | < | > | >> | API | Kapitel 11 - Strings

## 11.4 Die Klasse StringBuffer

- 11.4 Die Klasse StringBuffer
  - 11.4.1 Konstruktoren
  - 11.4.2 Einfügen von Elementen
  - 11.4.3 Löschen von Elementen
  - 11.4.4 Verändern von Elementen
  - 11.4.5 Längeninformationen
  - 11.4.6 Konvertierung in einen String

### 11.4.1 Konstruktoren

    StringBuffer()

    StringBuffer(String s)
| java.lang.StringBuffer

Der parameterlose Konstruktor erzeugt einen leeren `StringBuffer`. Wird dagegen ein `String` übergeben, erzeugt der Konstruktor ein `StringBuffer`-Objekt, das eine Kopie der übergebenen Zeichenkette darstellt.

### 11.4.2 Einfügen von Elementen

    StringBuffer append(String s)

    StringBuffer insert(int offset, String s)
| java.lang.StringBuffer

Mit `append` wird der String `s` an das Ende des `StringBuffer`-Objekts angehängt. Zurückgegeben wird das auf diese Weise verlängerte `StringBuffer`-Objekt `s`. Zusätzlich gibt es die Methode `append` in Varianten für das Anhängen aller Arten von primitiven Typen. Anstelle eines `String`-Objekts wird hier der entsprechende primitive Typ übergeben, in einen String konvertiert und an das Ende des Objekts angehängt.

`insert` fügt den String `s` an der Position `offset` in den aktuellen `StringBuffer` ein. Zurückgegeben wird das auf diese Weise verlängerte `StringBuffer`-Objekt `s`. Auch diese Methode gibt es für primitive Typen. Der anstelle eines `String` übergebene Wert wird zunächst in einen `String` konvertiert und dann an der gewünschten Stelle eingefügt.

### 11.4.3 Löschen von Elementen

    public StringBuffer deleteCharAt(int index)
    public StringBuffer delete(int start, int end)
| java.lang.StringBuffer

Mit `deleteCharAt` wird das an Position `index` stehende Zeichen entfernt und der `StringBuffer` um ein Zeichen verkürzt. `delete` entfernt den Teilstring, der von Position `start` bis `end` reicht, aus dem `StringBuffer` und verkürzt ihn um die entsprechende Anzahl Zeichen.

### 11.4.4 Verändern von Elementen

    void setCharAt(int index, char c)
      throws StringIndexOutOfBoundsException

    public StringBuffer replace(int start, int end, String str)
| java.lang.StringBuffer

Mit der Methode `setCharAt` wird das an Position `index` stehende Zeichen durch das Zeichen `c` ersetzt. Falls der `StringBuffer` zu kurz ist (also `index` hinter das Ende des `StringBuffer`-Objekts zeigt), löst die Methode eine Ausnahme des Typs `StringIndexOutOfBoundsException` aus.

|  |  |  | Seit dem JDK 1.2 gibt es zusätzlich eine Methode `replace`, mit der ein Teil des `StringBuffer`-Objekts durch einen anderen `String` ersetzt werden kann. Dabei wird das von Position `start` bis Position `end - 1` gehende Teilstück durch den `String` `str` ersetzt. Falls erforderlich, wird der ursprüngliche `StringBuffer` verkürzt oder verlängert. |  |
JDK1.1-1.4

### 11.4.5 Längeninformationen

    int length()

    public int capacity()
| java.lang.StringBuffer

`length` liefert die Länge des Objekts, also die Anzahl der Zeichen, die im `StringBuffer` enthalten sind. Mit `capacity` wird dagegen die Größe des belegten Pufferspeichers ermittelt. Dieser Wert ist typischerweise größer als der von `length` zurückgegebene Wert.

### 11.4.6 Konvertierung in einen String

    String toString()
| java.lang.StringBuffer

Nachdem die Konstruktion eines `StringBuffer`-Objekts abgeschlossen ist, kann es mit Hilfe dieser Methode effizient in einen `String` verwandelt werden. Die Methode legt dabei keine Kopie des `StringBuffer`-Objekts an, sondern liefert einen Zeiger auf den internen Zeichenpuffer. Erst wenn der `StringBuffer` erneut verändert werden soll, wird tatsächlich eine Kopie erzeugt.

|  | Die sinnvolle Anwendung der Klassen `String` und `StringBuffer` hat bei vielen Programmen großen Einfluß auf ihr Laufzeitverhalten. In Kapitel 49 gehen wir daher noch einmal auf die speziellen Performanceaspekte beider Klassen ein und geben Hinweise zu ihrer sinnvollen Anwendung. |  |
Hinweis

Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 3. Auflage, Addison Wesley, Version 3.0
<< | < | > | >> | API | © 1998-2002 Guido Krüger, http://www.javabuch.de