StringBuilder
O que é StringBuilder?
StringBuilder
é uma classe utilitária para manipulação e edição de objetos string.
StringBuilder
oferece seus próprios métodos, e criar um objeto StringBuilder
é simples e intuitivo.
Main
StringBuilder builder = new StringBuilder();
Dentro dos parênteses, também podemos passar um valor de string, e nossa variável StringBuilder
irá armazenar esse valor:
Main
StringBuilder builder = new StringBuilder("c<>definity");
Para exibir nosso valor no console, precisamos utilizar um dos métodos do StringBuilder
. É o método toString()
, que converte o valor do StringBuilder para um valor do tipo String.
Vamos analisar um exemplo:
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 em ação
StringBuilder
oferece um conjunto abrangente de métodos, sendo um dos mais valiosos e frequentemente utilizados o append(String str)
. Este método permite adicionar uma string especificada ao conteúdo existente de um objeto StringBuilder
.
Veja um exemplo 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 que não usar o operador +?
O principal motivo para preferirmos o método append
do StringBuilder é que ele minimiza a criação de objetos temporários, melhorando o desempenho ao modificar o conteúdo várias vezes. Toda vez que você utiliza o operador +
, um novo objeto é criado, o que pode ser custoso em termos de memória e tempo. O StringBuilder
modifica o conteúdo diretamente, tornando-o muito mais eficiente para modificações repetidas.
Swipe to start coding
Você está desenvolvendo uma exibição de produtos para uma página web. Cada produto possui um nome e um preço, armazenados em um array 2D.
É necessário formatar toda a lista em uma string bem estruturada utilizando um StringBuilder
.
- Criar um método chamado
buildProductList(String[][] products)
que retorna umaString
formatada. - Inicializar um
StringBuilder
e adicionar o cabeçalho:
"Product List:\n"
- Percorrer o array
products
utilizando um loop for-each. - Para cada produto:
- Extrair o nome (
product[0]
) - Extrair o preço (
product[1]
) - Adicionar uma linha ao
StringBuilder
no formato:
ProductName - $Price\n
- Extrair o nome (
- Retornar a
String
completa a partir doStringBuilder
.
Solução
solution
Obrigado pelo seu feedback!