1. Изучаем подробнее тип String
Тип String — один из самых используемых типов в Java. Возможно, вообще самый используемый. Это просто великолепный тип, ведь в таких переменных можно хранить текст. А еще, в отличие от типов int и double, у объектов типа String есть куча различных функций, и с помощью этих функций можно делать различные интересные вещи.
Кроме того, все объекты в Java (вообще все) могут быть преобразованы в тип String. Ну или, если сказать более корректно, все объекты в Java возвращают свое текстовое (строковое) представление. Мы будем еще не раз возвращаться к этому типу (очень уж он полезный и интересный), но сегодня познакомимся с его основами.
Создание переменных типа String
Тип String создан для хранения строк (текста). Чтобы создать в коде переменную, которая будет способна хранить текст, нужно воспользоваться командой:
String имя;
Где имя — это имя переменной.
Примеры:
| Команда | Описание |
|---|---|
|
Создается строковая переменная name |
|
Создается строковая переменная message |
|
Создается строковая переменная text |
Так же, как с типами int и double, можно использовать краткую запись для создания нескольких переменных типа String:
String имя1, имя2, имя3;
2. Присваивание значений переменным типа String
Чтобы занести в переменную типа String значение, нужно воспользоваться командой:
имя = "значение";
А вот и первое отличие типа от уже изученных. Все значения типа String представляют собой строки текста и должны быть заключены в двойные кавычки.
Примеры:
| Команда | Примечание |
|---|---|
|
Переменная name содержит текст Аня |
|
Переменная city содержит текст New York |
|
Переменная 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"
Примеры:
| Команда | Примечание |
|---|---|
|
name содержит строку АняАня |
|
city содержит строку New YorkАня |
|
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 есть собственные функции (их еще называют методами). Их очень много, и они облегчают жизнь программистам. Сегодня вы познакомитесь с некоторыми (самыми простыми) из них. Пример:
| Функция | Описание | Пример результата |
|---|---|---|
|
Длина строки | |
|
В верхний регистр | |
|
В нижний регистр | |
|
Удалить пробелы по краям | |
Примеры работы с функциями строк
Все эти функции вызываются вот так: переменная.функция(...).
Определить длину строки:
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"
Каждая такая функция возвращает новую строку, старая строка при этом не меняется.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ