Манипуляции: substring, concat, replace

Тренажер по Java для пользователей с начальным уровнем подготовки.

Тренажер по Java

В этом уроке тренируем продвинутые манипуляции со строками в Java: substring(), concat() и replace(). Эти операции нужны в задачах Java онлайн: от подготовки сообщений и отчётов до очистки пользовательского ввода. Разберём, как извлекать часть строки по индексам, склеивать значения и заменять фрагменты без изменения исходного объекта (строки immutable). Пример: "Hello".substring(1,4) даёт "ell", а "a".concat("b")"ab". Подходит для тренировки, тестов и интерактивных заданий.

Список тем

1. Сигнатуры substring и границы

id: 40463_sf_01_substring_signature

В этом задании вам предстоит заполнить пропуски в мини-справочнике о методе substring в Java. Используйте выпадающие списки, чтобы выбрать правильные термины и значения, описывающие сигнатуры метода и границы индексов. Обратите внимание на названия параметров и начальное значение индексации в строках. Задание поможет закрепить понимание работы с подстроками и их границами.

Нужно правильно расставить в пропуски предложенные варианты

Метод substring в Java используется для извлечения части строки. Он имеет две формы:

1. String substring(int beginIndex) – возвращает подстроку, начиная с индекса input1S до конца строки.

2. String substring(int beginIndex, int endIndex) – возвращает подстроку от индекса input2S (включительно) до индекса input3S (исключительно).

Индексы в строках Java начинаются с input4S.

Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Вставь вызов concat()

id: 40463_rp_02_concat_call

В этом задании вам предстоит дополнить фрагмент кода на 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 сек.
Показать подсказку

3. Что напечатает substring?

id: 40463_pr_03_substring_result

Проанализируйте приведённый фрагмент кода на 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. Исправь ошибку в замене

id: 40463_er_04_replace_vs_replaceall

В этом фрагменте Java-кода выполняется замена точек в строке на дефисы. Однако, в коде допущена ошибка в использовании метода замены, из-за чего результат вывода будет неверным. Найдите и исправьте строку с ошибкой, чтобы замена выполнялась корректно и выводился ожидаемый результат.

Найдите ошибку и исправьте
public class Main {
    public static void main(String[] args) {
        String text = "Hello.world.java";
        // Мы хотим заменить точки на дефисы
        String replaced = text.replaceAll(".", "-");
        System.out.println("Результат: " + replaced);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Результат после replace()

id: 40463_gr_05_replace_output

Проанализируйте приведённый фрагмент 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

id: 40463_bp_06_build_chain

Из предложенных строк соберите корректную 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);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

7. Отметь вызовы методов строк

id: 40463_ct_07_mark_calls

Перед вами фрагмент кода на языке 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}});
    }
}
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру