Введение в 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
Задание
ЛегкоСоздайте метод с именем modifyText, который принимает три аргумента:
- Строка (
text) для изменения - Строка (
target) для поиска - Строка (
replacement) для замены target
Метод должен:
- Создать StringBuffer с входным текстом
- Заменить первое вхождение target на replacement
- Добавить восклицательный знак в конце
- Вернуть итоговую строку
Возвращаемые сообщения должны быть:
- Если любой входной аргумент равен 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));
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
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Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка словПотренируйтесь самостоятельно: Онлайн-компилятор Java