JavaRush/Курсы/Модуль 1. Java Syntax/Примеры работы со строками

Примеры работы со строками

Открыта

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

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

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

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

Примеры:

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

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

Примеры:

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

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

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

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

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

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


2
Задача
Java Syntax Pro Beta,  2 уровень,  4 лекция
Недоступна
Полнометражная картина
Полнометражная картина

2. Преобразование к строковому типу

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

Более того, это автоматически происходит, когда мы складываем тип String с каким-нибудь другим типом. Примеры:

Команда Примечание
int a = 5;
String name = "Аня" + a;
name содержит строку Аня5
int a = 5;
String city = a + "New York" + a;
city содержит строку 5New York5
int number = 10;
String code = "Yo";
String message = "Hello! " + number + code;
message содержит строку Hello! 10Yo

Во всех трех примерах мы спокойно складывали переменные типа int и String, и в результате всегда получался тип String.

Арифметические операции с типом String проводить нельзя. Даже если строка целиком состоит из цифр.

Примеры:

Команда Примечание
int a = 5;
String name = "1" + a;
name содержит строку 15
int a = 5;
String city = a + "9" + a;
city содержит строку 595
int number = 10;
String code = "10";
String message = "" + number + code;
message содержит строку 1010

Операция сложения выполняется слева направо, так что результат может быть несколько неожиданным. Пример:

Команда Примечание
int a = 5;
String name = a + a + "1" + a;
name содержит строку 1015
Порядок выполнения: ((a + a) + "1") + a

3. Преобразование строки в число

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

String str = "" + число;
Преобразование числа в строку

А вот что делать, если нужно преобразовать строку в число? Ну, любую строку в число преобразовать нельзя. Но вот если строка состоит только из цифр, то все-таки можно. Для этого есть специальный метод у класса Integer.

Выглядит эта команда так:

int x = Integer.parseInt(строка);

Где int x – это объявление целочисленной переменной x, а строка — это число заданное в виде строки (строка состоящая из цифр).

Примеры:

Команда Примечание
String str = "123";
int number = Integer.parseInt(str);
number содержит число 123;
int number = Integer.parseInt("321");
number содержит число 321
int number = Integer.parseInt("321" + 0);
number содержит число 3210
int number = "321";
Не скомпилируется: переменная типа int, а значение типа String

4. Перевод объекта/примитива в строку

Для перевода экземпляра любого Java-класса или любого примитивного типа данных к строковому представлению, можно использовать метод String.valueOf():
public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);

        /*
        Вывод:
        1
        12.0
        123.4
        123456
        true
         */
    }
}

5. Некоторые методы работы со строками

Ну и напоследок хотелось бы рассказать о нескольких методах типа String.

Метод length()

Метод length() позволяет узнать длину строки – сколько в ней символов.

Примеры:

Команда Примечание
String name = "Rome";
int count = name.length();
count содержит значение 4
int count = "".length();
count содержит значение 0
String name = "Rom";
int count = (name + 12).length();
count содержит значение 5

Да, методы можно вызывать у всего, что имеет тип String, даже у выражения:

(name + 12).length()
Вызов метода length() у выражения типа String

Метод toLowerCase()

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

Примеры:

Команда Примечание
String name = "Rom";
String name2 = name.toLowerCase();
name2 содержит строку rom
String name = "".toLowerCase();
name содержит пустую строку
String name = "ROM123";
String name2 = name.toLowerCase();
name2 содержит строку rom123

Метод toUpperCase()

Метод toUpperCase() позволяет преобразовать все символы строки в большие (заглавные):

Примеры:

Команда Примечание
String name = "Rom";
String name2 = name.toUpperCase();
name2 содержит строку ROM
String name = "rom123";
String name2 = name.toUpperCase();
name2 содержит строку ROM123

2
Задача
Java Syntax Pro Beta,  2 уровень,  4 лекция
Недоступна
Последняя цифра числа
Последняя цифра числа
2
Задача
Java Syntax Pro Beta,  2 уровень,  4 лекция
Недоступна
Девятка — это перевернутая шестерка
Девятка — это перевернутая шестерка
2
Задача
Java Syntax Pro Beta,  2 уровень,  4 лекция
Недоступна
Когда-то было 32 зуба
Когда-то было 32 зуба
Комментарии (22)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Max
Уровень 93
8 октября 2024, 09:31
Вот где были мои глаза все эти 30 минут? "чтобы все буквы в этих строках стали строчными." ВСЕ !!!
МаксимРаботает в Минский метрополитенExpert
19 января 2024, 13:29
Третий раз возвращаюсь к обучению, не хватает пинков реальных.
TaurnilTechnical Lead в ООО "Теком"Expert
21 января 2024, 19:23
Одними пинками делу не поможешь... Ты сам должен захотеть. Необходимо, чтобы обучение воспринималось как какое-то достижение, в котором есть цель, и было удовольствие от процесса. Последнее - самое важное, я считаю. Я прошел автоматизированный курс полностью, потом решил взять стажировку. Потому что в ней разбираются технологии, необходимые мне для понимания кода в проекте, куда я стремлюсь уйти. В комплекте со стажировкой я получил доступ к курсу университета, где первые два раздела у меня уже "пройдены". Решил перечитать, освежить в памяти XD
Roman
Уровень 3
5 ноября 2024, 21:43
Должен захотеть уже звучит как какое то насилие.
Александр Антонов
Уровень 2
Expert
20 марта 2025, 11:31
всё программирование это ежедневное насилие твоего мозга)
Павел
Уровень 5
Expert
9 января 2024, 20:28
хах, мда, вечер взрывающихся пуканов 😂
Павел
Уровень 5
Expert
10 января 2024, 19:47
hidden #3247435
Уровень 4
18 февраля 2023, 21:47
упомянули примитивы без описания , что это такое?
hidden #2920280
Уровень 9
7 декабря 2021, 19:12
не понятно почему спереди скобка не ставиться в RESUME
System.out.println(("RESUME").toLowerCase());
компилятор выдает ошибку а в правильном ответе ее всего лишь нет.
13 ноября 2023, 20:07
Зачем тебе там скобка?
Виктор Шефф
Уровень 111
Expert
3 декабря 2021, 13:16
Комментарий для потомков: Мы выживали как могли! Смотри на уровень, если он превысил 10-й, значит у нас получилось! 🤠
Андрей
Уровень 25
Expert
24 ноября 2022, 11:59
Ты смог, дружище! что помогло?
Виктор Шефф
Уровень 111
Expert
25 ноября 2022, 08:22
Только интерес. Больше нет никакой мотивации, должно быть тупо интересно разобраться.
13 января 2024, 13:15
Оставлю тоже здесь комментарий. Посмотрим, если уровень превысил 10-й, значит получилось :)
Тася
Уровень 22
2 декабря 2021, 18:54
Почему нельзя вызвать метод .toLowerCase для всего выражения, которое находится в методе System.out.println()? Ведь в задании сказано вызвать метод .toLowerCase у строк, речь не идёт о каждой отдельной переменной...
System.out.println(("CAREER: " + career).toLowerCase());
При запуске всё выводится строчными, но счётчик проверок тикал до тех пор, пока для каждой отдельной переменной не прописала .toLowerCase... 😶
Владимир
Уровень 48
Expert
3 декабря 2021, 06:33
Внимательнее смотрите на комментарий валидатора. У меня была та же проблема, но ругался он на самом деле только на первую строку, ты там, скорее всего как и йа, сделала
("RESUME").toLowerCase()
Остальные строки сделал как ты и валидатор пропустил.
DataForce Data Engineer
3 декабря 2021, 09:43
Почему нельзя? У меня работает
System.out.println("RESUME".toLowerCase());
...
System.out.println(("CAREER: " + career).toLowerCase());
Сранно, конечно, что не работает со скобками первый вызов.
Олег Ошурков
Уровень 2
Expert
4 декабря 2021, 08:57
тренажер для использования метода из теории
Павел
Уровень 28
13 декабря 2021, 11:53
Не работает (("RESUME").toLowerCase()); , потому что скобки нужны для выражения, а "RESUME" это не выражение. Скобки меняют порядок вычисления выражения, либо объединяют две сущности, и на результате получившегося значения, уже вызывают метод за скобкой ("a" + 10).someFunc();
Артём
Уровень 41
2 декабря 2021, 17:51
("Винни Пух").toUpperCase() а чего скомпилировалось, отвечает условию но не прошло решение?
2 июня 2022, 17:37
Мужик, ты чё, за полгода до 41 уровня дошёл??? Или тут где-то срезать можно? Если да, то респект и уважуха!
Диба
Уровень 109
Expert
2 декабря 2021, 16:41
тут шушутька мозг поболит у новичков