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 hilos (thread-safe) (seguro para múltiples operaciones al mismo tiempo). Se utiliza 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" con "Hey"Después de ejecutar el código anterior, sb contiene:
Hey Java
Desafío
FácilCrea un método llamado modifyText que reciba tres argumentos:
- Un String (
text) a modificar - Un String (
target) a buscar - Un String (
replacement) con el cual reemplazar target
El método debe:
- Crear un StringBuffer con el texto de entrada
- Reemplazar la primera aparición de target con replacement
- Añadir un signo de exclamación al final
- 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
- Para una operación exitosa: 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));
}
}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