A classe Java StringBuffer é usada para criar objetos String mutáveis (modificáveis). A classe StringBuffer em Java é igual à classe String, exceto que é mutável, ou seja, pode ser alterada.
Nota: A classe Java StringBuffer é thread-safe, ou seja, vários threads não podem acessá-la simultaneamente. Portanto, é seguro e resultará em um pedido.
Construtores importantes da classe StringBuffer
Construtor | Descrição |
---|---|
StringBuffer() | Ele cria um buffer String vazio com capacidade inicial de 16. |
StringBuffer(StringString) | Ele cria um buffer String com a string especificada. |
StringBuffer (capacidade interna) | Ele cria um buffer String vazio com a capacidade especificada como comprimento. |
Métodos importantes da classe StringBuffer
Modificador e tipo | Método | Descrição |
---|---|---|
StringBuffer sincronizado público | anexar (String s) | É usado para anexar a string especificada a esta string. O métodoappend() está sobrecarregado comoappend(char),append(boolean),append(int),append(float),append(double) etc. |
StringBuffer sincronizado público | inserir(deslocamento interno, String s) | É usado para inserir a string especificada com esta string na posição especificada. O método insert() está sobrecarregado como insert(int, char), insert(int, boolean), insert(int, int), insert(int, float), insert(int, double) etc. |
StringBuffer sincronizado público | substituir(int startIndex, int endIndex, String str) | É usado para substituir a string de startIndex e endIndex especificados. |
StringBuffer sincronizado público | delete(int startIndex, int endIndex) | É usado para excluir a string de startIndex e endIndex especificados. |
StringBuffer sincronizado público | reverter() | é usado para reverter a string. |
público interno | capacidade() | É usado para retornar a capacidade atual. |
vazio público | garantirCapacidade(int capacidade mínima) | É utilizado para garantir a capacidade pelo menos igual ao mínimo determinado. |
caractere público | charAt(índice interno) | É usado para retornar o caractere na posição especificada. |
público interno | comprimento() | É usado para retornar o comprimento da string, ou seja, o número total de caracteres. |
String pública | substring(int inícioIndex) | É usado para retornar a substring do BeginIndex especificado. |
String pública | substring(int inícioIndex, int endIndex) | É usado para retornar a substring do beginIndex e endIndex especificados. |
O que é uma String mutável?
Uma String que pode ser modificada ou alterada é conhecida como String mutável. As classes StringBuffer e StringBuilder são usadas para criar strings mutáveis.
1) Método Append() da classe StringBuffer
O método append() concatena o argumento fornecido com esta String.
StringBufferExample.java
class StringBufferExample{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.append('Java');//now original string is changed System.out.println(sb);//prints Hello Java } }
Saída:
Hello Java
2) Método StringBuffer insert()
O método insert() insere a String fornecida com esta string na posição especificada.
StringBufferExample2.java
class StringBufferExample2{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.insert(1,'Java');//now original string is changed System.out.println(sb);//prints HJavaello } }
Saída:
HJavaello
3) Método StringBuffer substituir()
O método replace() substitui a String fornecida do startIndex e endIndex especificados.
StringBufferExample3.java
class StringBufferExample3{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.replace(1,3,'Java'); System.out.println(sb);//prints HJavalo } }
Saída:
HJavalo
4) Método StringBuffer delete()
O método delete() da classe StringBuffer exclui a String do BeginIndex especificado para endIndex.
StringBufferExample4.java
class StringBufferExample4{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.delete(1,3); System.out.println(sb);//prints Hlo } }
Saída:
Hlo
5) Método StringBuffer reverso()
O método reverse() da classe StringBuilder inverte a String atual.
StringBufferExample5.java
class StringBufferExample5{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.reverse(); System.out.println(sb);//prints olleH } }
Saída:
olleH
6) Método StringBuffer capacidade()
O métodocapacidade() da classe StringBuffer retorna a capacidade atual do buffer. A capacidade padrão do buffer é 16. Se o número de caracteres aumentar em relação à sua capacidade atual, ele aumentará a capacidade em (oldcapacity*2)+2. Por exemplo, se sua capacidade atual for 16, será (16*2)+2=34.
StringBufferExample6.java
class StringBufferExample6{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 } }
Saída:
16 16 34
7) Método StringBuffer garantirCapacity()
O método garantirCapacity() da classe StringBuffer garante que a capacidade fornecida seja a mínima da capacidade atual. Se for maior que a capacidade atual, aumenta a capacidade em (oldcapacity*2)+2. Por exemplo, se sua capacidade atual for 16, será (16*2)+2=34.
StringBufferExample7.java
class StringBufferExample7{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 sb.ensureCapacity(10);//now no change System.out.println(sb.capacity());//now 34 sb.ensureCapacity(50);//now (34*2)+2 System.out.println(sb.capacity());//now 70 } }
Saída:
16 16 34 34 70