Java StringBuffer With Method Examples

StringBuffer in Java is a thread-safe, mutable sequence of characters thus using StringBuffer class you can create modifiable String objects.

na String post em Java já vimos que objetos String são imutáveis, ou seja, Strings são constantes; seus valores não podem ser alterados depois que eles são criados. Devido a esta propriedade de imutabilidade quando você usa um método de modificação de String como a concatenação o que realmente acontece é que uma nova String é criada e devolvida que contém o resultado da operação. Isso pode levar à criação de muitos objetos de cadeia intermediária se a cadeia for modificada várias vezes, o que por sua vez significa mais memória sendo usada para esses objetos intermediários.

Usando o objeto StringBuffer você pode evitar este problema de criar vários objetos como ele é mutável. Sem surpresa, as principais operações em um StringBuffer são os métodos append e insert.

índice
  1. pontos Importantes sobre Java StringBuffer
  2. Java StringBuffer Construtores
  3. Java StringBuffer método de exemplos

pontos Importantes sobre Java StringBuffer

Alguns dos pontos importantes sobre a classe StringBuffer.

  1. StringBuffer in Java provides much of the functionality of String class with one prominent deviation that StringBuffer is mutable.
  2. StringBuffer também é seguro para thread, assim o objeto StringBuffer pode ser usado com segurança por vários threads. Os métodos da classe StringBuffer são sincronizados quando necessário.cada StringBuffer é criado com uma capacidade. Desde que o comprimento da sequência de caracteres contida no buffer de string não exceda a capacidade, não é necessário alocar uma nova matriz interna de buffer. Se o buffer interno transbordar, ele é automaticamente feito maior.
  3. Java 5 onward StringBuilder class is also provided which is equivalent to StringBuffer class but designed for use by a single thread. StringBuilder é mais rápido, pois não realiza sincronização.

construções Java StringBuffer

Existem quatro Construtores na classe StringBuffer.

  1. StringBuffer–) – constrói um buffer de cadeia sem caracteres nele e uma capacidade inicial de 16 caracteres.
    StringBuffer sb = new StringBuffer();
  2. StringBuffer(int capacidade)– constrói um buffer de cadeia sem caracteres nele e a capacidade inicial especificada.
    StringBuffer sb = new StringBuffer(30);
  3. StringBuffer(CharSequence seq)– constrói um buffer de cadeia que contém os mesmos caracteres que o CharSequence especificado.aqui CharSequence é uma interface que é implementada por CharBuffer, Segment, StringBuffer, StringBuffer, StringBuilder.
  4. StringBuffer– String str) – constrói um buffer de string inicializado para o conteúdo do string especificado.
    StringBuffer sb = new StringBuffer("Hello");

Java StringBuffer method examples

append method

append method is overloaded so to accept data of any type. Este método adiciona a representação de texto do tipo de dados dado ao buffer existente. O método append adiciona sempre estes caracteres no final do buffer.

public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.append(" "); sb.append("World").append(" ").append(123); System.out.println("Appended String- " + sb.toString()); }}

Saída

Appended String- Hello World 123

Como você pode ver o exemplo de acrescentar é usado com String como argumento e também int como argumento, como é sobrecarregado para esses tipos de dados. Você também pode chain append method Como feito nesta linha de código –

sb.append("World").append(" ").append(123)

Usando o método append podemos também verificar a afirmação de que a String é imutável onde como StringBuffer é mutável. No exemplo um objeto StringBuffer é criado e então os valores são adicionados a ele e a referência retornada é armazenada em outro StringBuffer.

da mesma forma que uma cadeia é criada e os valores adicionados a ela, cadeia devolvida também é referenciada por outra cadeia.

ao verificar a igualdade de duas referências de StringBuffer, você pode ver que ambas são iguais, enquanto que para String ambas são diferentes.

public class StringLiteral {public static void main(String args) {// With StringBufferSystem.out.println("StringBuffer...");StringBuffer sb = new StringBuffer("Hello");sb.append(" ");StringBuffer newsb = sb.append("World").append(" ").append(123);if (sb == newsb) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}// With StringSystem.out.println("String...");String str = "Hello";String newstr = str.concat(" ").concat("World").concat(" ").concat("123");if (str == newstr) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}}}

Saída

StringBuffer...Reference is sameString...Reference is different

o método inserir

inserir método é sobrecarregado para aceitar dados de qualquer tipo. Este método é usado para inserir a representação de texto do dado tipo de dados no buffer existente. O método de inserção adiciona os caracteres num ponto especificado.

inserir método leva dois argumentos primeiro um inteiro indicando a posição onde os caracteres devem ser inseridos no buffer e segundo argumento é o texto a ser inserido.

public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Knp"); sb.insert(3, "Code"); System.out.println("String after insert- " + sb); }}

Saída

String after insert- KnpCode

comprimento e capacidade métodos

capacidade()– Retorna a capacidade atual do StringBuffer.

comprimento–) – Devolve o número de caracteres desta sequência.

public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer(30); sb.append("Hello"); System.out.println("Capacity of StringBuffer- " + sb.capacity()); System.out.println("Length of StringBuffer- " + sb.length()); }}

Saída

Capacity of StringBuffer- 30Length of StringBuffer- 5

Como você pode ver StringBuffer é criado com a capacidade de 30 assim, a capacidade é apresentada como 30, onde, como número de caracteres no buffer é de 5 portanto, o comprimento é apresentado como 5.

deletecharat métodos

  • delete(int start, int end)– remove os caracteres numa sub-sequência desta sequência. start que indica que o índice de início é inclusivo quando como fim, o que indica que o índice de fim é exclusivo.
  • deleteCharAt (índice int) – remove o char na posição especificada nesta sequência.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.delete(1, 4); System.out.println("After deletion- " + sb); System.out.println("Length of StringBuffer- " + sb.length()); }}

Saída

After deletion- HoLength of StringBuffer- 2
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.deleteCharAt(4);System.out.println("After deletion- " + sb);System.out.println("Length of StringBuffer- " + sb.length());}}

Saída

After deletion- HellLength of StringBuffer- 4

Java StringBuffer inversa método

reverse()– Inverte a existente StringBuffer.

public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");System.out.println("Reversed- " + sb.reverse());}}

Saída

Reversed- olleH

Java StringBuffer replace method

replace(int start, int end, Str)– substitui os caracteres num substring desta sequência (start to end-1) por caracteres na cadeia especificada.

public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.replace(3, 5, "ena");System.out.println("String- " + sb);}}

Saída

String- Helena
  • Java StringBuilder Com o Método de Exemplos
  • Por que a String é Imutável em Java
  • É o Java String Thread-Safe
  • Java String código interno() Método
  • Java String split() Método
  • Compacto Seqüências de caracteres em Java 9
  • a Encontrar o Comprimento da corda Sem a Utilização de comprimento() o Método em Java
  • Converter Char E String String Char em Java

isso é tudo para o tópico Java StringBuffer Com o Método de Exemplos. Se algo está faltando ou você tem algo a compartilhar sobre o tópico, por favor escreva um comentário.

pode também gostar de

Deixe uma resposta

O seu endereço de email não será publicado.