В этом уроке тренируем продвинутые манипуляции со строками в Java: substring(), concat() и replace(). Эти операции нужны в задачах Java онлайн: от подготовки сообщений и отчётов до очистки пользовательского ввода. Разберём, как извлекать часть строки по индексам, склеивать значения и заменять фрагменты без изменения исходного объекта (строки immutable). Пример: "Hello".substring(1,4) даёт "ell", а "a".concat("b") — "ab". Подходит для тренировки, тестов и интерактивных заданий.
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Сигнатуры substring и границы
В этом задании вам предстоит заполнить пропуски в мини-справочнике о методе substring в Java. Используйте выпадающие списки, чтобы выбрать правильные термины и значения, описывающие сигнатуры метода и границы индексов. Обратите внимание на названия параметров и начальное значение индексации в строках. Задание поможет закрепить понимание работы с подстроками и их границами.
Метод substring в Java используется для извлечения части строки. Он имеет две формы:
1. String substring(int beginIndex) – возвращает подстроку, начиная с индекса input1S до конца строки.
2. String substring(int beginIndex, int endIndex) – возвращает подстроку от индекса input2S (включительно) до индекса input3S (исключительно).
Индексы в строках Java начинаются с input4S.
2. Вставь вызов concat()
В этом задании вам предстоит дополнить фрагмент кода на Java, который собирает итоговую строку из нескольких частей с помощью метода concat(). В коде пропущены ключевые элементы вызова этого метода. Ваша задача — вставить пропущенные токены так, чтобы программа корректно выполнялась и выводила ожидаемый результат. Обратите внимание на синтаксис вызова метода concat() и порядок аргументов.
public class ConcatExample {
public static void main(String[] args) {
String greeting = "Hello";
String space = " ";
String name = "Java";
String punctuation = "!";
// Соберите итоговую строку "Hello Java!" с помощью concat()
String result = greeting input1S(space) input2S(name) input3S;
System.out.println(result);
}
}3. Что напечатает substring?
Проанализируйте приведённый фрагмент кода на Java, содержащий манипуляции со строкой с помощью метода substring. Определите, что будет выведено на экран в результате выполнения программы. Обратите внимание на индексы и границы подстрок.
public class Main {
public static void main(String[] args) {
String text = "Programming in Java";
String part1 = text.substring(0, 11);
String part2 = text.substring(12);
System.out.println(part1 + " -> " + part2);
}
}4. Исправь ошибку в замене
В этом фрагменте Java-кода выполняется замена точек в строке на дефисы. Однако, в коде допущена ошибка в использовании метода замены, из-за чего результат вывода будет неверным. Найдите и исправьте строку с ошибкой, чтобы замена выполнялась корректно и выводился ожидаемый результат.
public class Main { public static void main(String[] args) { String text = "Hello.world.java"; // Мы хотим заменить точки на дефисы String replaced = text.replaceAll(".", "-"); System.out.println("Результат: " + replaced); }}5. Результат после replace()
Проанализируйте приведённый фрагмент Java-кода, в котором создаётся строка и последовательно применяется метод replace() для замены символов. Определите, какая строка будет выведена на экран после выполнения всех операций. Введите полученную строку в поле ответа. Обратите внимание на точное совпадение, включая все символы и пробелы.
public class Main {
public static void main(String[] args) {
String text = "a+b=c";
text = text.replace('+', '-').replace('=', ':');
System.out.println(text);
}
}6. Собери цепочку: substring + concat + replace
Из предложенных строк соберите корректную Java-программу, которая демонстрирует цепочку операций со строками: сначала извлекает подстроку, затем соединяет её с другой строкой и заменяет в результате определённый символ, после чего выводит итог. Одна строка лишняя и не должна входить в решение. Порядок строк должен точно отражать последовательность выполнения операций.
public class Main { public static void main(String[] args) { String original = "Hello World"; String part = original.substring(0, 5); String combined = part.concat(" Java"); String result = combined.replace('J', 'j'); System.out.println(result); System.out.println(original); }}7. Отметь вызовы методов строк
Перед вами фрагмент кода на языке Java, в котором выполняются различные операции со строками. Внимательно изучите код и найдите все вызовы методов строк substring, concat и replace. Ваша задача — кликнуть по каждому такому вызову, чтобы выделить его. Не отмечайте другие методы (например, length, println, equals), а также имена переменных, операторы или литералы.
public class StringDemo {
public static void main(String[] args) {
String greeting = "Hello, World!";
int len = {{greeting.length()~|~t0}};
System.out.println({{len~|~t1}});
String part = {{greeting.substring(7)~|~t2}};
String combined = {{part.concat(" from Java")~|~t3}};
System.out.println({{combined~|~t4}});
String replaced = {{greeting.replace('o', '0')~|~t5}};
String finalText = {{replaced.substring(0, 5).concat("!!!")~|~t6}};
System.out.println({{finalText~|~t7}});
boolean test = {{greeting.equals("Hi")~|~t8}};
System.out.println({{test~|~t9}});
}
}