JavaRush /Курсы /JAVA 25 SELF /Строки и текст: тип String, работа со строками

Строки и текст: тип String, работа со строками

JAVA 25 SELF
2 уровень , 2 лекция
Открыта

1. Изучаем подробнее тип String

Тип String — один из самых используемых типов в Java. Возможно, вообще самый используемый. Это просто великолепный тип, ведь в таких переменных можно хранить текст. А еще, в отличие от типов int и double, у объектов типа String есть куча различных функций, и с помощью этих функций можно делать различные интересные вещи.

Кроме того, все объекты в Java (вообще все) могут быть преобразованы в тип String. Ну или, если сказать более корректно, все объекты в Java возвращают свое текстовое (строковое) представление. Мы будем еще не раз возвращаться к этому типу (очень уж он полезный и интересный), но сегодня познакомимся с его основами.

Создание переменных типа String

Тип String создан для хранения строк (текста). Чтобы создать в коде переменную, которая будет способна хранить текст, нужно воспользоваться командой:

String имя;
Создание переменной типа String

Где имя — это имя переменной.

Примеры:

Команда Описание
String name;
Создается строковая переменная name
String message;
Создается строковая переменная message
String text;
Создается строковая переменная text

Так же, как с типами int и double, можно использовать краткую запись для создания нескольких переменных типа String:

String имя1, имя2, имя3;
Создание переменных типа String

2. Присваивание значений переменным типа String

Чтобы занести в переменную типа String значение, нужно воспользоваться командой:

имя = "значение";
Присваивание значения переменной типа String

А вот и первое отличие типа от уже изученных. Все значения типа String представляют собой строки текста и должны быть заключены в двойные кавычки.

Примеры:

Команда Примечание
String name = "Аня";
Переменная name содержит текст Аня
String city = "New York";
Переменная city содержит текст New York
String message = "Hello!";
Переменная message содержит текст Hello!

3. Инициализация переменных типа String

Как и в случае с типами int и double, переменные типа String можно инициализировать сразу при создании. Это, кстати, можно делать вообще со всеми типами в Java. Так что больше мы об этом говорить не будем.

String имя1 = "значение1", имя2 = "значение2", имя3 = "значение3";
Сокращенная форма создания и инициализации переменных
String name = "Аня", city = "New York", message = "Hello!";
Пример команды создания и инициализации переменных

Менять можно только переменные со значением

Java-компилятор будет ругаться, если вы объявите переменную, не присвоив ей никакого значения, и попробуете ее использовать.

Такой код работать не будет:

String name;
System.out.println(name); // Переменная name не инициализирована. Программа не скомпилируется.
int a;
a++; // Переменная a не инициализирована. Программа не скомпилируется.
double x;
double y = x; // Переменная x не инициализирована. Программа не скомпилируется.

4. Конкатенация — склеивание строк

Есть очень интересная и простая вещь, которую можно делать со строками в Java — их можно склеивать. Такая операция называется конкатенация. Ну или чтобы легче запомнилось — Кон-Котэ-Нация 😆. Хотя часто ее называют «склеивание строк» или даже просто «сложение строк».

Чтобы склеить две строки, нужно использовать знак +. Это очень просто:

"строка1" + "строка2"
Конкатенация двух строк

Примеры:

Команда Примечание
String name = "Аня" + "Аня";
name содержит строку АняАня
String city = "New York" + "Аня";
city содержит строку New YorkАня
String message = "Hello! " + "Аня";
message содержит строку Hello! Аня

Ну и, конечно, одновременно можно складывать много строк, а также складывать строки и переменные.

String name = "Аня";                // name содержит строку Аня
String city = "New York";           // city содержит строку New York
String message = "Hello!" + city + name + city; // message содержит строку Hello!New YorkАняNew York

5. Пустые строки

В последнем примере видно, что текст в переменной message плохо читается, т.к. в нем не хватает пробелов. Чтобы задать один пробел или несколько, нужно просто написать их в коде и обернуть в двойные кавычки. Это проще, чем кажется:

" "
Строка, содержащая один пробел

Кстати, если между кавычками совсем не оставить места (написать две двойные кавычки подряд), получится так называемая «пустая строка»:

""
Пустая строка

С одной стороны, она вроде бы и есть, а с другой, при ее выводе на экран ничего не выводится. И при склейке с другими строками ничего не происходит. Эдакий аналог нуля, только для строк.

6. Экранирование спецсимволов в строках

Вы уже знаете, что строки обрамляются двойными кавычками. Но что делать, если нужно вставить в строку кавычки? Если мы напишем кавычки в строке, разве компилятор не посчитает их как окончание строки?

Правильно. Посчитает. Поэтому кавычки внутри текста заменяются парой символов \". И код будет выглядеть вот так:

String quote = "Он сказал: \"Здравствуйте!\"";
System.out.println(quote); // Он сказал: "Здравствуйте!"

На самом деле все еще немного хитрее. Символ \ считается специальным (управляющим) символом внутри строк. С его помощью можно задавать различные "непечатные символы" типа переноса строки, табуляции и т.п. Ну а чтобы задавать сам символ \, его нужно написать 2 раза.

Вот 4 самые распространённые комбинации:

Запись Значение
\n Перенос строки (newline)
\t Табуляция (отступ)
\\ Буквально \
\" Кавычки внутри строки

Пример:

String multiline = "Строка 1\nСтрока 2";
System.out.println(multiline);

Выведет:

Строка 1
Строка 2

7. Собственные функции строк

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

Функция Описание Пример результата
str.length()
Длина строки
"abc".length() → 3
str.toUpperCase()
В верхний регистр
"abc".toUpperCase() → "ABC"
str.toLowerCase()
В нижний регистр
"ABC".toLowerCase() → "abc"
str.trim()
Удалить пробелы по краям
"  x y  ".trim() → "x y"

Примеры работы с функциями строк

Все эти функции вызываются вот так: переменная.функция(...).

Определить длину строки:

String name = "Андрей";
int length = name.length();
System.out.println(length); // 6, так как 6 букв

Перевести строку в верхний или нижний регистр:

String original = "Привет";
System.out.println(original.toUpperCase()); // ПРИВЕТ
System.out.println(original.toLowerCase()); // привет

Удалить пробелы по краям (очень полезно при вводе с клавиатуры):

String messy = "   hello   ";
System.out.println(messy.trim()); // "hello"

Каждая такая функция возвращает новую строку, старая строка при этом не меняется.

1
Задача
JAVA 25 SELF, 2 уровень, 2 лекция
Недоступна
Сообщение из будущего 👽
Сообщение из будущего 👽
1
Задача
JAVA 25 SELF, 2 уровень, 2 лекция
Недоступна
Создание полного имени 👤
Создание полного имени 👤
1
Задача
JAVA 25 SELF, 2 уровень, 2 лекция
Недоступна
Цитата героя 🗣️
Цитата героя 🗣️
1
Задача
JAVA 25 SELF, 2 уровень, 2 лекция
Недоступна
Обработка данных из формы 📝
Обработка данных из формы 📝
Комментарии (19)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
sunshine #3587389 Уровень 2
14 января 2026
оставлю тут комментарий, что бы на 50 уровне вернуться сюда и посмотреть на красивую циферку.🥰
Nataly Smith Уровень 4
5 января 2026
Двигаюсь пока в пределах понимания. Последнее задание не вызвало сложностей, разве что отвлекаюсь.
evgenbl47 Уровень 6
30 декабря 2025
Ищу девушку
Archibald26 Уровень 5
25 ноября 2025
Привет) Есть тут из тех кто тут изучал Java, и трудоустроился ?)
Sergey Mos Уровень 12
29 декабря 2025
+
Anonymous #6428995 Уровень 5
12 ноября 2025
Последняя задача содержит неверное ТЗ - оно буквально требует, для её выполнения, минимум 1 пробела в начале и 1 пробела в конце. Но, как показала проверка - этого недостаточно. То есть - по ТЗ минимум должен быть 2 пробела в начале и 2 пробела в конце!
12 ноября 2025
Последняя задача просто убила, то ли я тупой, то ли еще что то
18 октября 2025
Хоть бери и заранее коменты читай. Я тоже угарнул с пробелами))) То есть если не читать коменты, с первого раза задачу не решишь
Никита Шарагин Уровень 5
1 октября 2025
Хотелось бы, чтоб указывалось ск пробелов должно быть.
Anonymous #1921396 Уровень 6
12 сентября 2025
Интересное задание, я аж скопировала из ТЗ что должно быть присвоено, и всё равно не пашет. Для застрявших - добавьте больше пробелов перед и в конце слова.
YaPitonE Уровень 5
9 сентября 2025
ТЗ ужасное... Напишите, что нужно выводить в верхнем регистре и нижнем с убранными пробелами, а то получается не явное ТЗ
Серега Батенин Уровень 12
16 сентября 2025
В самом тз не было этой инфы, но вот в комментариях в коде было явно написано, чтобы перезаписали значение переменной с убранными пробелами. Поэтому в теории по другому и не могло бы выйти. А вот про два пробела тишина. Хотя если присмотреться то в описании задачи у названия города по 2 пробела, а вот в самом ТЗ по одному. Поэтому надо ещё смотреть откуда копируем)
Павел Уровень 5
11 января 2026
Вперед, к Платиновому Мегатрону! 😎