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 лекция
Недоступна
Обработка данных из формы 📝
Обработка данных из формы 📝
Комментарии (29)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #6510784 Уровень 6
12 июня 2026
System.out.println (cityName.trim().length());// один аргумент '2 в 1' удаляет пробелы из строки cityName и определяет ее длину.
Матвей Уровень 3
26 июня 2026
о , спасибо
Nastya Уровень 8
28 мая 2026
Вместо trim() надо использовать strip() начиная с Java 11
Gans Electro Уровень 28
22 мая 2026
Если есть ошибки нужно напрямую писать админам. В вас есть кнопка с конвертом. Там можно писать Зепп Бранниган. Не можно а нужно. Именно комменты под лекциями они читают редко. Их слишком много
Solo Level Уровень 4
7 мая 2026
Вернусь как дойду до 30го уровня
Камила Ибраева Уровень 4
14 апреля 2026
выводит то, что ошибки неочевидные, типа пробел не поставила и тд🙃🙃
Anonymous #6482093 Уровень 4
8 марта 2026
Вернусь как буду на 20 уровне
22 февраля 2026
+
Валерка Ферум Уровень 32
11 февраля 2026
Оставлю коммент для лайков
sunshine #3587389 Уровень 12
14 января 2026
оставлю тут комментарий, что бы на 50 уровне вернуться сюда и посмотреть на красивую циферку.🥰
Nataly Smith Уровень 5
5 января 2026
Двигаюсь пока в пределах понимания. Последнее задание не вызвало сложностей, разве что отвлекаюсь.