Введение в 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
Задание
ЛегкоСоздайте метод с именем modifyText, который принимает три аргумента:
- Строку (
text) для изменения - Строку (
target) для поиска - Строку (
replacement) для замены target
Метод должен:
- Создать StringBuffer с входным текстом
- Заменить первое вхождение target на replacement
- Добавить восклицательный знак в конец
- Вернуть итоговую строку
Возвращаемые значения должны быть:
- Если любой аргумент равен 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));
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap5HashSet Часть 2
Математика - Объединение HashSetsМатематика - Пересечение HashSetМатематика - Разность множествМатематика - Симметрическая разностьПодмножества и надмножестваИтерация по множествам8Продвинутые операции со строками
Основы StringBuilderВведение в StringBufferОсновы регулярных выраженийСопоставление шаблонов с RegexСтроковый токенизаторПродвинутое форматирование строк3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов