Menu
CoddyTech

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 seguro para subprocesos (seguro para varias operaciones al mismo tiempo). Se usa para crear cadenas mutables (modificables).

Crea 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

Modifica el texto usando insert() y replace():

StringBuffer sb = new StringBuffer("Java");
sb.insert(0, "Hi ");       // añade al principio
sb.replace(0, 2, "Hey");   // reemplaza "Hi" por "Hey"

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

Hey Java

Para encontrar dónde empieza un texto, usa indexOf(). Devuelve la posición de la primera coincidencia o -1 si el texto no está ahí:

StringBuffer sb = new StringBuffer("Hey Java");
int pos = sb.indexOf("Java");   // 4
int none = sb.indexOf("Python"); // -1
challenge icon

Desafío

Fácil

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

  1. Un String (text) que modificar
  2. Un String (target) que buscar
  3. Un String (replacement) con el que reemplazar target

El método debe:

  1. Crear un StringBuffer con el texto de entrada
  2. Reemplazar la primera aparición de target por replacement
  3. Añadir un signo de exclamación al final
  4. Devolver la cadena final

Los mensajes de retorno deben ser:

  • Si alguna entrada es null: devolver "Invalid input"
  • Si no se encuentra target: devolver el texto original con un signo de exclamación
  • Si la operación se realiza correctamente: devolver el texto modificado

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

Practica por tu cuenta: Compilador de Java online