Menu
Coddy logo textTech

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

Часть раздела Логика и управление потоком путешествия по 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