JavaRush /Курси /Java Syntax Zero /Приклади роботи з рядками

Приклади роботи з рядками

Java Syntax Zero
Рівень 2 , Лекція 6
Відкрита

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 передбачили в цій мові можливість перетворення абсолютно всіх змінних, об'єктів і виразів на тип 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. Деякі методи роботи з рядками

І насамкінець розповімо про декілька методів типу 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

Коментарі (29)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Владислав Рівень 1
16 травня 2025
Викликав метод .leght() замість .length() не одразу помітив витратив близько 20 хвилин))) Висновок - БУДЬТЕ УВАЖНІШЕ)))
Василь Рівень 4
24 вересня 2025
або використовуйте середовище розробки IDEA або її аналоги
Liudmyla Iermolenko Рівень 6
26 листопада 2024
import java.lang.String; А где об этом шла речь, что мы импорт должны сделать?
Василь Рівень 4
24 вересня 2025
якщо ви працюєте в середовищі то використовуючи методи класу String цей імпорт буде підтягуватися автоматично, вам нічого прописувати не треба. Якщо будете вирішувати задачі через додаток чи на сайті, там цей імпорт теж вже буде прописано. Детальніше про це будуть говорити пізніше, або можете почитати в інтернеті що таке імпорти у Java.
Anonymous #3315996 Рівень 3
9 серпня 2023
Не знайдено метод "toLowerCace()" у класі "java.lang.String". а в IntelliJ знаходить.
Ruslan Рівень 35
12 лютого 2024
toLowerCase(), а не toLowerCace() треба, а INTELLIJ напевно автозаміну робить
Lazy Initialization Рівень 36 Expert
30 березня 2023
щоб отримати вірний результат у прикладі:

int a = 5;
String name = a + a + "1" + a;
потрібно забрати лапки навколо 1, а в кінці додати пустий рядок, щоб компілятор не сварився. Ось так:

String name = a + a + 1 + a + "";
результат: 16
Олексій Рівень 1 Expert
22 березня 2023
Надзвичайно цікаво! Але дуже великий обсяг інформації. Щоб краще засвоїлось, на мою думку, варто цю лекцію проходити протягом клькох днів. Щиро дякую розробникам JavaRush за підборку і складання такого чудового навчального матеріалу!
Марк Рівень 8
31 січня 2023
Мда. незважаючи на правильний результат і дотримання умов задачі, перевірку не пройдено через те, що код написано не так, як би того хотілося авторам. Про те, який варіант вірний, лишається тільки здогадуватись
Anonymous #3262541 Рівень 12
14 лютого 2023
Марк, ти просто ламер і ботяра 😏
Ва Дим Рівень 28
1 березня 2024
Код повинен бути написаний так я цього хоче виконавесь,роботодавець,начатьник навісь якщо ти художник і бачиш це по інакшому.Виключення в випадку якщо всім плювати як ти це зробиш, головне зробити
Ivan D. Рівень 3
15 червня 2025
Підтримую Марка. Код мій був 100% вірний, компілюється, виводить той самий результат, як і в варіанті розробників. До того ж співпадає з кодом розробників, відрізняється лише відсутністю коментарів, але не приймається системою як вірний.
Anonymous #3187459 Рівень 2
7 листопада 2022
Третье пошло как надо) Я понял. Метод проб и ошибок))долгий поиск решений и вот уже все остается в голове.)
Anonymous #3187459 Рівень 2
7 листопада 2022
Серьезно?))) System.out.println(("TITLE: " + title).toLowerCase()) А как догадаться или знать, что теперь скобки надо так ставить? ТАкой информации по выводу через out.println не давали. СЛожно осознать в задании, что делать( НУ.... буду догонять по ходу
Ledzen Рівень 4
19 лютого 2023
Мене це теж напрягло. І в наступних задачах та сама проблема
Anonymous #3270882 Рівень 5
27 лютого 2023
Тобто? Що саме "не давали знати"? Там чітко написано, що це треба застосувати для строки що конкатенована (тобто для всієї)
Пузирєй Денис Рівень 28
24 липня 2023
Нас не просто так вчать. Ми повинні і самі застосоувати свій мозок і здогадуватись як таке вирішується.
Anonymous #3187459 Рівень 2
7 листопада 2022
Я не понял как делать.Я прописал, но за скобками как в примере.Других вариантов не было. Что я только не делал и int даже создавал. НЕ получалось).КОгда я нажал подсказку,я изумился. ТАкого в примерах не было. String name = "Rom"; int count = (name + 12).length(); Тут метод за скобками, я так и писал в задании,но это была ошибка. А такого в примерах не было. Сложно понять,что такое тоже может быть. System.out.println(emptyString.length()); System.out.println("Gomu Gomu no Bazooka!".length()); System.out.println((emptyString + 2 + 2 + "22").length()); Тут везде метод прописан в скобках
Kateryna Рівень 2
6 жовтня 2022
слово "порожнеча" написане в завданні з пропуском рядка спочатку, а потім з пробілом - збило, хоч завдання і легке. Тому не з першого разу. 🙄