Menu
Coddy logo textTech

Introdução ao StringBuffer

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 45 de 59.

StringBuffer é semelhante ao StringBuilder, mas é thread-safe (seguro para múltiplas operações ao mesmo tempo). É usado para criar strings mutáveis (modificáveis).

Crie um StringBuffer com texto inicial:

StringBuffer sb = new StringBuffer("Hello");

Adicione mais texto usando append():

sb.append(" World");

Após executar o código acima, sb contém:

Hello World

Modifique o texto usando insert() e replace():

StringBuffer sb = new StringBuffer("Java");
sb.insert(0, "Hi ");       // adiciona no início
sb.replace(0, 2, "Hey");   // substitui "Hi" por "Hey"

Após executar o código acima, sb contém:

Hey Java

challenge icon

Desafio

Fácil

Crie um método chamado modifyText que recebe três argumentos:

  1. Uma String (text) para modificar
  2. Uma String (target) para encontrar
  3. Uma String (replacement) para substituir target por

O método deve:

  1. Criar um StringBuffer com o texto de entrada
  2. Substituir a primeira ocorrência de target por replacement
  3. Adicionar um ponto de exclamação no final
  4. Retornar a string final

As mensagens de retorno devem ser:

  • Se qualquer entrada for null: retornar "Invalid input"
  • Se target não for encontrado: retornar o texto original com ponto de exclamação
  • Para operação bem-sucedida: retornar o texto modificado

Folha de consulta

StringBuffer é thread-safe e usado para criar strings mutáveis.

Crie um StringBuffer com texto inicial:

StringBuffer sb = new StringBuffer("Hello");

Adicione texto usando append():

sb.append(" World");

Insira texto em uma posição específica:

sb.insert(0, "Hi ");  // adiciona no início

Substitua texto usando replace():

sb.replace(0, 2, "Hey");  // substitui caracteres do índice 0 ao 2

Experimente você mesmo

import java.util.Scanner;

public class Main {
    public static String modifyText(String text, String target, String replacement) {
        // Escreva seu código aqui
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String text = scanner.nextLine();
        String target = scanner.nextLine();
        String replacement = scanner.nextLine();
        
        if (text.equals("null")) text = null;
        if (target.equals("null")) target = null;
        if (replacement.equals("null")) replacement = null;
        
        System.out.println(modifyText(text, target, replacement));
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo