StringBuilder
Was ist StringBuilder?
StringBuilder
ist eine Hilfsklasse zur Bearbeitung und Manipulation von Zeichenkettenobjekten.
StringBuilder
stellt eigene Methoden bereit, und das Erstellen eines StringBuilder
-Objekts ist unkompliziert und intuitiv.
Main
StringBuilder builder = new StringBuilder();
Innerhalb der Klammern können wir auch einen String-Wert übergeben, und unsere StringBuilder
-Variable wird diesen Wert speichern:
Main
StringBuilder builder = new StringBuilder("c<>definity");
Um unseren Wert auf der Konsole auszugeben, müssen wir eine der Methoden von StringBuilder
verwenden. Es handelt sich um die Methode toString()
, die den Wert des StringBuilder in einen Wert vom Typ String umwandelt.
Schauen wir uns ein Beispiel an:
Main
package com.example; public class Main { public static void main(String[] args) { StringBuilder builder = new StringBuilder("c<>definity"); String string = builder.toString(); System.out.println(string); } }
StringBuilder in Aktion
StringBuilder
bietet eine umfangreiche Auswahl an Methoden, wobei eine der wertvollsten und am häufigsten verwendeten append(String str)
ist. Diese Methode ermöglicht es, einen angegebenen String zum bestehenden Inhalt eines StringBuilder
-Objekts hinzuzufügen.
Betrachten wir ein Codebeispiel:
Main
package com.example; public class Main { public static void main(String[] args) { // Initializing the new `String` with value "Hello" String hello = "Hello"; System.out.println("Our string before using an append() method: " + hello); // Initializing a new `StringBuilder` with value of our already initialized string StringBuilder builder = new StringBuilder(hello); // Using `append()` method, adding a string world to our `StringBuilder` builder = builder.append(" world!"); // Creating a new `String` variable that has a `StringBuilder` value String result = builder.toString(); System.out.println("Our string after using an append() method: " + result); } }
Warum nicht den + Operator verwenden?
Der Hauptgrund, warum wir die append
-Methode von StringBuilder bevorzugen, ist die Minimierung der Erstellung von temporären Objekten, was die Leistung bei mehrfachen Inhaltsänderungen verbessert. Jedes Mal, wenn der +
-Operator verwendet wird, wird ein neues Objekt erstellt, was in Bezug auf Speicher und Zeit aufwendig sein kann. StringBuilder
ändert den Inhalt direkt und ist daher wesentlich effizienter bei wiederholten Änderungen.
Swipe to start coding
Sie erstellen eine Produktanzeige für eine Webseite. Jedes Produkt verfügt über einen Namen und einen Preis, die in einem zweidimensionalen Array gespeichert sind.
Die gesamte Liste soll mithilfe eines StringBuilder
als übersichtlich formatierter String ausgegeben werden.
- Eine Methode mit dem Namen
buildProductList(String[][] products)
erstellen, die einen formatiertenString
zurückgibt. - Einen
StringBuilder
initialisieren und die Überschrift anhängen:
"Product List:\n"
- Das
products
-Array mit einer for-each-Schleife durchlaufen. - Für jedes Produkt:
- Name extrahieren (
product[0]
) - Preis extrahieren (
product[1]
) - Eine Zeile im Format
ProductName - $Price\n
an denStringBuilder
anhängen
- Name extrahieren (
- Den vollständigen
String
aus demStringBuilder
zurückgeben.
Lösung
solution
Danke für Ihr Feedback!