Menu
Coddy logo textTech

Введение в StringBuffer

Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 45 из 59.

StringBuffer похож на StringBuilder, но является потокобезопасным (безопасным для выполнения нескольких операций одновременно). Он используется для создания изменяемых (модифицируемых) строк.

Создайте StringBuffer с начальным текстом:

StringBuffer sb = new StringBuffer("Hello");

Добавить больше текста с помощью append():

sb.append(" World");

После выполнения приведенного выше кода sb содержит:

Hello World

Изменение текста с помощью insert() и replace():

StringBuffer sb = new StringBuffer("Java");
sb.insert(0, "Hi ");       // adds at beginning
sb.replace(0, 2, "Hey");   // replaces "Hi" with "Hey"

После выполнения приведённого выше кода sb содержит:

Hey Java

challenge icon

Задание

Легко

Создайте метод с именем modifyText, который принимает три аргумента:

  1. Строку (text) для изменения
  2. Строку (target) для поиска
  3. Строку (replacement) для замены target

Метод должен:

  1. Создать StringBuffer с входным текстом
  2. Заменить первое вхождение target на replacement
  3. Добавить восклицательный знак в конец
  4. Вернуть итоговую строку

Возвращаемые значения должны быть:

  • Если любой аргумент равен null: вернуть "Invalid input"
  • Если target не найден: вернуть исходный текст с восклицательным знаком
  • При успешной операции: вернуть изменённый текст

Шпаргалка

StringBuffer является потокобезопасным и используется для создания изменяемых строк.

Создайте StringBuffer с начальным текстом:

StringBuffer sb = new StringBuffer("Hello");

Добавьте текст с помощью append():

sb.append(" World");

Вставьте текст в определенную позицию:

sb.insert(0, "Hi ");  // добавляет в начало

Замените текст с помощью replace():

sb.replace(0, 2, "Hey");  // заменяет символы с индекса 0 по 2

Попробуйте сами

import java.util.Scanner;

public class Main {
    public static String modifyText(String text, String target, String replacement) {
        // Напишите код здесь
    }
    
    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 iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком