Menu
Coddy logo textTech

Введение в StringBuffer

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

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

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

StringBuffer sb = new StringBuffer("Hello");

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

sb.append(" World");

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

Hello World

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

StringBuffer sb = new StringBuffer("Java");
sb.insert(0, "Hi ");       // добавляет в начало
sb.replace(0, 2, "Hey");   // заменяет "Hi" на "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 не найден: вернуть исходный текст с восклицательным знаком
  • При успешном выполнении: вернуть измененный текст

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

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Проверьте себя

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

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