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
Desafío
FácilCrea un método llamado modifyText que tome tres argumentos:
- Un String (
text) para modificar - Un String (
target) para encontrar - Un String (
replacement) para reemplazar target con
El método debería:
- Crear un StringBuffer con el texto de entrada
- Reemplazar la primera ocurrencia de target con replacement
- Agregar un signo de exclamación al final
- 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 principioReemplazar texto usando replace():
sb.replace(0, 2, "Hey"); // reemplaza caracteres desde el índice 0 hasta 2Prué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));
}
}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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap5HashSet Parte 2
Matemáticas - Unión de HashSetsMatemáticas - Intersección de HashSetMatemáticas - Diferencia de ConjuntosMatemáticas - Diferencia SimétricaSubconjuntos y SuperconjuntosIterando Sobre Conjuntos8Operaciones Avanzadas con Cadenas
Conceptos Básicos de StringBuilderIntroducción a StringBufferConceptos Básicos de Expresiones RegularesCoincidencia de Patrones con RegexTokenizador de CadenasFormato Avanzado de Cadenas3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de Palabras