StringBuilder
¿Qué es StringBuilder?
StringBuilder
es una clase utilitaria para manipular y editar objetos de tipo string.
StringBuilder
proporciona sus propios métodos, y crear un objeto StringBuilder
es sencillo e intuitivo.
Main
StringBuilder builder = new StringBuilder();
Dentro de los paréntesis, también podemos pasar un valor de cadena, y nuestra variable StringBuilder
almacenará ese valor:
Main
StringBuilder builder = new StringBuilder("c<>definity");
Para imprimir nuestro valor en la consola, necesitamos usar uno de los métodos de StringBuilder
. Es el método toString()
, que convierte el valor de StringBuilder a un valor de tipo String.
Veamos un ejemplo:
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 en acción
StringBuilder
ofrece un conjunto amplio de métodos, siendo uno de los más valiosos y utilizados con frecuencia append(String str)
. Este método permite agregar una cadena especificada al contenido existente de un objeto StringBuilder
.
A continuación, se muestra un ejemplo de código:
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); } }
¿Por qué no usar el operador +?
La razón principal por la que se prefiere el método append
de StringBuilder es que minimiza la creación de objetos temporales, mejorando el rendimiento al modificar el contenido varias veces. Cada vez que se utiliza el operador +
, se crea un nuevo objeto, lo cual puede ser costoso en términos de memoria y tiempo. StringBuilder
modifica directamente el contenido, lo que lo hace mucho más eficiente para modificaciones repetidas.
Swipe to start coding
Estás creando una visualización de productos para una página web. Cada producto tiene un nombre y un precio, y se almacenan en un arreglo bidimensional.
Debes formatear toda la lista en una cadena estructurada utilizando un StringBuilder
.
- Crear un método llamado
buildProductList(String[][] products)
que devuelva unaString
formateada. - Inicializar un
StringBuilder
y agregar el encabezado:"Product List:\n"
- Recorrer el arreglo
products
usando un ciclo for-each. - Para cada producto:
- Extraer el nombre (
product[0]
) - Extraer el precio (
product[1]
) - Agregar una línea al
StringBuilder
con el formato:ProductName - $Price\n
- Extraer el nombre (
- Devolver la
String
completa delStringBuilder
.
Solución
solution
¡Gracias por tus comentarios!