StringBuilder
Що таке StringBuilder?
StringBuilder
— це утилітний клас для маніпулювання та редагування об'єктів рядків.
StringBuilder
надає власні методи, а створення об'єкта StringBuilder
є простим та інтуїтивно зрозумілим.
Main
StringBuilder builder = new StringBuilder();
У дужках також можна передати рядкове значення, і наша змінна StringBuilder
міститиме це значення:
Main
StringBuilder builder = new StringBuilder("c<>definity");
Щоб вивести наше значення в консоль, потрібно використати один із методів StringBuilder
. Це метод toString()
, який перетворює значення StringBuilder на значення типу String.
Розглянемо приклад:
Main
package com.example; public class Main { public static void main(String[] args) { StringBuilder builder = new StringBuilder("c<>definity"); String string = builder.toString(); System.out.println(string); } }
StringBuilder у дії
StringBuilder
надає широкий набір методів, серед яких одним із найцінніших і найчастіше використовуваних є append(String str)
. Цей метод дозволяє додавати вказаний рядок до наявного вмісту об'єкта StringBuilder
.
Розглянемо приклад коду:
Main
package com.example; public class Main { public static void main(String[] args) { // Initializing the new `String` with value "Hello" String hello = "Hello"; System.out.println("Our string before using an append() method: " + hello); // Initializing a new `StringBuilder` with value of our already initialized string StringBuilder builder = new StringBuilder(hello); // Using `append()` method, adding a string world to our `StringBuilder` builder = builder.append(" world!"); // Creating a new `String` variable that has a `StringBuilder` value String result = builder.toString(); System.out.println("Our string after using an append() method: " + result); } }
Чому не використовувати оператор +?
Основна причина, чому надають перевагу методу append
класу StringBuilder, полягає у зменшенні створення тимчасових об'єктів, що підвищує продуктивність при багаторазовій зміні вмісту. Кожного разу, коли використовується оператор +
, створюється новий об'єкт, що може бути витратним за пам'яттю та часом. StringBuilder
змінює вміст безпосередньо, що робить його значно ефективнішим для повторних змін.
Swipe to start coding
Ви створюєте відображення продуктів для веб-сторінки. Кожен продукт має назву та ціну, які зберігаються у двовимірному масиві.
Потрібно відформатувати весь список у структурований рядок за допомогою StringBuilder
.
- Створіть метод з назвою
buildProductList(String[][] products)
, який повертає відформатованийString
. - Ініціалізуйте
StringBuilder
і додайте заголовок:
"Product List:\n"
- Пройдіться по масиву
products
за допомогою циклу for-each. - Для кожного продукту:
- Отримайте назву (
product[0]
) - Отримайте ціну (
product[1]
) - Додайте рядок до
StringBuilder
у форматі:
ProductName - $Price\n
- Отримайте назву (
- Поверніть повний
String
зStringBuilder
.
Рішення
solution
Дякуємо за ваш відгук!