Menu
CoddyTech

Продвинутое форматирование строк

Часть раздела Логика и управление потоком путешествия по Java на Coddy. Урок 49 из 59.

Форматирование строк в Java позволяет создавать форматированные строки с помощью спецификаторов формата. Наиболее распространённые из них: %s для строк, %d для целых чисел и %.2f для десятичных чисел.

Отформатируйте строку с несколькими значениями:

String name = "John";
int age = 25;
String text = String.format("Name: %s, Age: %d", name, age);

После выполнения приведённого выше кода text содержит:

Name: John, Age: 25

Форматируйте десятичные числа с заданной точностью:

double price = 19.99;
String formatted = String.format("Price: $%.2f", price);

После выполнения приведённого выше кода formatted содержит:

Price: $19.99

challenge icon

Задание

Легко

Создай метод с именем formatData, который принимает четыре аргумента:

  1. String (name) для названия продукта
  2. double (price) для цены продукта
  3. целое число (quantity) для количества
  4. String (format) для типа формата вывода

Метод должен форматировать данные в зависимости от следующих типов:

  • "basic": вернуть "ITEM: {name}, PRICE: ${price}"
  • "detailed": вернуть "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}"
  • "total": вернуть "TOTAL FOR {quantity}x {name}: ${total}" (total = price * quantity)

Все цены должны форматироваться ровно с 2 знаками после десятичной точки.

Верни сообщение:

  • Если какой-либо входной параметр равен null или указан недопустимый формат: вернуть "Invalid input"

Попробуйте сами

import java.util.Scanner;

public class Main {
    public static String formatData(String name, double price, int quantity, String format) {
        // Напишите здесь свой код
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        double price = Double.parseDouble(scanner.nextLine());
        int quantity = Integer.parseInt(scanner.nextLine());
        String format = scanner.nextLine();
        
        if (name.equals("null")) name = null;
        if (format.equals("null")) format = null;
        
        System.out.println(formatData(name, price, quantity, format));
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Java