Menu
Coddy logo textTech

Introducción a StringBuffer

Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 45 de 59.

StringBuffer es similar a StringBuilder pero es thread-safe (seguro para múltiples operaciones al mismo tiempo). Se utiliza para crear cadenas mutables (modificables).

Crear un StringBuffer con texto inicial:

StringBuffer sb = new StringBuffer("Hello");

Añade más texto usando append():

sb.append(" World");

Después de ejecutar el código anterior, sb contiene:

Hello World

Modificar texto usando insert() y replace():

StringBuffer sb = new StringBuffer("Java");
sb.insert(0, "Hi ");       // agrega al principio
sb.replace(0, 2, "Hey");   // reemplaza "Hi" con "Hey"

Después de ejecutar el código anterior, sb contiene:

Hey Java

challenge icon

Desafío

Fácil

Crea un método llamado modifyText que tome tres argumentos:

  1. Un String (text) para modificar
  2. Un String (target) para encontrar
  3. Un String (replacement) para reemplazar target con

El método debería:

  1. Crear un StringBuffer con el texto de entrada
  2. Reemplazar la primera ocurrencia de target con replacement
  3. Agregar un signo de exclamación al final
  4. Devolver la cadena final

Los mensajes de retorno deberían ser:

  • Si cualquier entrada es null: devolver "Invalid input"
  • Si target no se encuentra: devolver el texto original con signo de exclamación
  • Para operación exitosa: devolver el texto modificado

Hoja de referencia

StringBuffer es thread-safe y se usa para crear cadenas mutables.

Crear un StringBuffer con texto inicial:

StringBuffer sb = new StringBuffer("Hello");

Agregar texto usando append():

sb.append(" World");

Insertar texto en una posición específica:

sb.insert(0, "Hi ");  // agrega al principio

Reemplazar texto usando replace():

sb.replace(0, 2, "Hey");  // reemplaza caracteres desde el índice 0 hasta 2

Pruébalo tú mismo

import java.util.Scanner;

public class Main {
    public static String modifyText(String text, String target, String replacement) {
        // Escribe tu código aquí
    }
    
    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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo