String — основы работы со строками

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

Тренажер по Java

String — базовый тип для работы со строками в Java. Строки создаются через литералы ("text") или как объекты, а операции со строками часто встречаются в задачах Java онлайн: вывод, склейка, поиск, сравнение. Важно помнить, что строки неизменяемы: любые «изменения» создают новую строку. На этом уроке-тренажёре будут практические задания и тесты: конкатенация (+), длина, доступ к символам, подстроки, equals, indexOf, contains. Это поможет понять, как работает код и быстрее писать ответы на задачи Java.

  • Пример: String s = "Hi"; System.out.println(s.length());
Список тем

1. Литерал строки и экранирование

id: 40437_str_01_replace_literals

В этом задании нужно восстановить фрагмент Java-кода, который выводит строку с кавычками внутри текста и символами обратного слэша (путь в Windows). Заполните пропуски так, чтобы код компилировался и печатал ровно требуемую строку. Важно корректно задать тип переменной для строк и правильно экранировать специальные символы внутри строкового литерала.

Заполните пропуски
public class str_01_replace_literals {
    public static void main(String[] args) {
        input1S text = "He said: input2SJavainput3S. Path: C:input4SProgram Filesinput4SJava";
        System.out.println(text);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Конкатенация строк оператором +

id: 40437_str_02_replace_concat

Дополните фрагмент кода на Java так, чтобы программа корректно собрала итоговое сообщение из нескольких строковых частей и вывела его на экран. В пропусках нужно восстановить элементы, связанные с конкатенацией строк оператором сложения, добавлением пробела как строкового литерала и корректным выводом результата. Структуру кода менять не нужно — только заполнить отмеченные места.

Заполните пропуски
public class str_02_replace_concat {
    public static void main(String[] args) {
        String firstName = "Ann";
        String lastName = "Lee";
        String greeting = "Hello";

        String message = greeting input1S input2S input1S firstName input1S input2S input1S lastName + "!";
        System.out.input3S(message);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Сравнение строк: == vs equals

id: 40437_str_03_error_equals

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

Найдите ошибку и исправьте
public class str_03_error_equals {
    public static void main(String[] args) {
        String expected = "yes";
        String answer = new String("yes");
        if (answer == expected) {
            System.out.println("Match");
        } else {
            System.out.println("No match");
        }
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Что выведет length() и charAt()

id: 40437_str_04_predict_length_charat

Проанализируйте фрагмент программы на Java, где создаётся строка, а затем в консоль выводятся её длина методом length() и один символ по индексу с помощью charAt(). Определите, какой именно вывод появится в консоли, и выберите один правильный вариант из предложенных.

Выберите правильный вариант ответа
public class Main {
    public static void main(String[] args) {
        String text = "Hello Java";
        System.out.println(text.length());
        System.out.println(text.charAt(6));
    }
}
Сообщения
Проверить
Показать подсказку

5. Собрать код: подстрока и вывод

id: 40437_str_05_build_from_parts_substring

Из предложенных строк соберите корректную Java-программу, которая создаёт строку, берёт из неё подстроку с помощью substring(start, end) и выводит полученный результат в консоль. Важно соблюдать структуру программы: класс → метод main → работа со строкой → вывод. Одна строка является лишней и в итоговый код входить не должна.

Перетяните в правильном порядке строки из одного блока в другой
public class str_05_build_from_parts_substring {
    public static void main(String[] args) {
        String word = "programming";
        String part = word.substring(0, 7);
        System.out.println(part);
    }
}
        System.out.println(word.length());
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Метод ↔ назначение

id: 40437_str_06_compare_methods

Сопоставьте методы класса String из левой колонки с их назначением из правой колонки. Для каждого метода нужно выбрать одно единственное описание, которое лучше всего отражает, что возвращает метод или что он проверяет. Постарайтесь опираться на то, какие значения возвращают методы (число, символ, подстроку, позицию и т.д.) и что означает результат.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
length()
charAt(int index)
substring(int beginIndex, int endIndex)
indexOf(String str)
contains(CharSequence s)
equals(Object anObject)
Возвращает количество символов в строке
Возвращает индекс первого вхождения указанной подстроки (или -1, если не найдено)
Сравнивает две строки по содержимому (true/false)
Возвращает символ по указанному индексу
Проверяет, содержит ли строка указанную последовательность символов (true/false)
Возвращает подстроку от beginIndex (включительно) до endIndex (не включительно)
Сообщения
Проверить
Показать подсказку

7. Разложить операции по категориям

id: 40437_str_07_sort_operations

Перед вами список операций и методов, которые часто применяются при работе со строками в Java. Разнесите каждый элемент по одной из трёх категорий: операции, которые получают информацию о строке, операции поиска/проверки, и операции, создающие новую строку (не изменяя исходную). Каждый элемент должен оказаться ровно в одной категории.

Перетяните элементы в соответствующие блоки
Получение информации
Поиск/проверка
Создание новой строки
length()
charAt(int index)
isEmpty()
indexOf(String str)
contains(CharSequence s)
startsWith(String prefix)
substring(int beginIndex, int endIndex)
toUpperCase()
replace(CharSequence target, CharSequence replacement)
trim()
equals(Object anObject)
Сообщения
Проверить
Показать подсказку

8. Неизменяемость String: итоговое значение

id: 40437_str_08_give_result_immutability

Проанализируйте фрагмент Java-кода и определите, какая строка будет выведена в консоль. Обратите внимание, что при конкатенации и вызове методов строка не изменяется «на месте»: новое значение появляется только там, где результат операции присваивается переменной. Введите итоговый вывод программы одной строкой, без кавычек.

Что должно получиться?
public class str_08_give_result_immutability {
    public static void main(String[] args) {
        String s = "Java";
        s + "!";
        s = s + "!";
        s.substring(0, 4);
        s = s.substring(1, 4);
        System.out.println(s);
    }
}
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру