Stringbuilder é uma classe que representa uma sequência dinâmica e mutável de caracteres usado principalmente quando precisamos concatenar um grande número de strings. Seu conteúdo não pode ser acessado utilizando o indexador [] e sim via seus métodos.

Para instanciar um objeto StringBuilder seguimos as sintaxes mostradas logo abaixo:

Sintaxe A
StringBuilder nome_objeto = new StringBuilder();
StringBuilder nome_objeto = new StringBuilder(CharSequence seq)
StringBuilder nome_objeto = new StringBuilder(int capacity)
StringBuilder nome_objeto = new StringBuilder(String str)
Onde
seq: sequência de caracteres do tipo CharSequence
capacity: quantidade de caracteres
str: string base de origem
Exemplo 1
public class Main
{

	public static void main(String[] args) {
		StringBuilder nome_objeto = new StringBuilder(“uma string em Java”);
	}
}

Com o método append podemos inserir um valor no fim do buffer interno do StringBuilder. Esse método possui várias sobrecargas para diferentes tipos de dados como argumento. A conversão para string é feita de forma automática pelo método.

Sintaxe
StringBuilder append(<valor>)
Onde
<valor>: boolean, char, char[], CharSequence, double, float, int, long, Object, String, StringBuffer
codificação: UTF-16

Quando tipos numéricos ou booleanos, por exemplo são usados como argumentos, esses são convertidos para o formato string como pode ser visto no exemplo abaixo:

Exemplo 2
public class Main
{
	public static void main(String[] args) 
	{
		StringBuilder strB = new StringBuilder();
		strB.append("string");
		strB.append(false);
		System.out.println(strB); //toString()
	}
}
Saída
stringfalse

Para descobrir o número de caracteres contido no buffer do StringBuilder podemos utilizar o método length como mostrado no exemplo abaixo:

Sintaxe
int length(); 
Retorno
int contendo quantidade de caracteres 
Exemplo 3
//Main.java
public class Main
{
	public static void main(String[] args) 
	{
		StringBuilder strB = new StringBuilder();
		strB.append("string");
		strB.append(false);
		
		System.out.println(strB.length());
	}
}
Saída
11

Para verificar se um StringBuilder contém algum valor em seu buffer interno ou está vazio, podemos utilizar o método length que retorno um int contendo a quantidade de caracteres.

Sintaxe
nome_objeto.length() > 0 
Exemplo 4
//Main.java
public class Main
{
	public static void main(String[] args) 
	{
		StringBuilder strB = new StringBuilder();
		strB.append("string");
		strB.append(false);
		
		if( strB.length() > 0)
		    System.out.println(strB.length());
		else
		    System.out.println("vazio");
	}
}
Saída
11

A verificação utilizando null também deve sempre ser feita para evitar erros de acesso:

Sintaxe
nome_objeto == null
nome_objeto != null 
Exemplo 5
//Main.java
public class Main
{
	public static void main(String[] args) 
	{
		StringBuilder strB = null;
		
		if( strB != null)
		    System.out.println(strB.length());
		else
		    System.out.println("não iniciado");
	}
}
Saída
não iniciado

Para manipular substrings contidas em uma StringBuilder, usamos alguns dos métodos fornecidos por sua classe, mostrados nas sintaxes logo abaixo, que lidam com busca e substituição:

Sintaxe
int indexOf(String str)
String substring(int start, int end)
StringBuilder replace(int start, int end, String str)
Onde
str: string para busca, inserção ou substituição
start: índice inicial
end: índice final

No exemplo abaixo, recuperamos o índice de uma substring com o método indexOf:

Exemplo 6
public class Main
{
	public static void main(String[] args) {
		StringBuilder sb = new StringBuilder();
		sb.append("uma");
		sb.append("string");
		sb.append("qualquer");
		
		System.out.println(sb.indexOf("string")); //buscar substring	
	}
}
Saída
3

Com o método substring, podemos recuperar uma substring em um determinado local informando o índice inicial e final.

Exemplo 7
public class Main
{
	public static void main(String[] args) {
		StringBuilder sb = new StringBuilder();
		sb.append("uma");
		sb.append("string");
		sb.append("qualquer");
		
		System.out.println(sb.substring(3,9));	
	}
}
Saída
3

O métodod replace nos permite substituir uma substring informando em seus argumentos o índice inicial, final e também a substring para substituição.

Exemplo 8
public class Main
{
	public static void main(String[] args) {
		StringBuilder sb = new StringBuilder();
		sb.append("uma");
		sb.append("string");
		sb.append("qualquer");
		
		System.out.println(sb.replace(3,9, "STRING"));	
	}
}
Saída
umaSTRINGqualquer

Para recuperar toda a string contida em um objeto do tipo StringBuilder, a sua classe fornece o método toString que possui a sintaxe mostrada logo abaixo:

Sintaxe
String toString() 
Exemplo 9
//Main.java
public class Main
{
	public static void main(String[] args) {
		StringBuilder sb = new StringBuilder();
		sb.append("string 1");
		sb.append("string 2");
		sb.append("string 3");
		
		System.out.println(sb.toString());
	}
}
Saída
string 1string 2string 3

pendente

  1. append —
  2. appendCodePoint —
  3. capacity —
  4. charAt —
  5. codePointAt —
  6. codePointBefore —
  7. codePointCount —
  8. delete —
  9. ensureCapacity —
  10. getChars —
  11. indexOf —
  12. insert —
  13. lastIndexOf —
  14. length —
  15. offsetByCodePoints —
  16. replace —
  17. reverse —
  18. setCharAt —
  19. setLength —
  20. subSequence —
  21. substring —
  22. substring —
  23. toString —
  24. trimToSize —
  1. 12/08/2026 - versão inicial: adicionar, número de caracteres, verificar e trabalhar com substrings