Введение в 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Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов