String — базовый тип для работы со строками в Java. Строки создаются через литералы ("text") или как объекты, а операции со строками часто встречаются в задачах Java онлайн: вывод, склейка, поиск, сравнение. Важно помнить, что строки неизменяемы: любые «изменения» создают новую строку. На этом уроке-тренажёре будут практические задания и тесты: конкатенация (+), длина, доступ к символам, подстроки, equals, indexOf, contains. Это поможет понять, как работает код и быстрее писать ответы на задачи Java.
- Пример:
String s = "Hi"; System.out.println(s.length());
- Модуль 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. Литерал строки и экранирование
В этом задании нужно восстановить фрагмент 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);
}
}2. Конкатенация строк оператором +
Дополните фрагмент кода на 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. Сравнение строк: == vs 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"); } }}4. Что выведет 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. Собрать код: подстрока и вывод
Из предложенных строк соберите корректную 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());6. Метод ↔ назначение
Сопоставьте методы класса String из левой колонки с их назначением из правой колонки. Для каждого метода нужно выбрать одно единственное описание, которое лучше всего отражает, что возвращает метод или что он проверяет. Постарайтесь опираться на то, какие значения возвращают методы (число, символ, подстроку, позицию и т.д.) и что означает результат.
length()charAt(int index)substring(int beginIndex, int endIndex)indexOf(String str)contains(CharSequence s)equals(Object anObject)7. Разложить операции по категориям
Перед вами список операций и методов, которые часто применяются при работе со строками в 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: итоговое значение
Проанализируйте фрагмент 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);
}
}