Продвинутое форматирование строк
Часть раздела Логика и управление потоком путешествия по 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
Задание
ЛегкоСоздайте метод с именем formatData, который принимает четыре аргумента:
- Строку (
name) для названия продукта - Дробное число (
price) для цены продукта - Целое число (
quantity) для количества - Строку (
format) для типа формата вывода
Метод должен форматировать данные в зависимости от этих типов:
- "basic": return "ITEM: {name}, PRICE: ${price}"
- "detailed": return "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}"
- "total": return "TOTAL FOR {quantity}x {name}: ${total}" (total = price * quantity) Все цены должны быть отформатированы с ровно 2 знаками после запятой.
Возвращаемое сообщение:
- Если какой-либо входной параметр равен null или формат недействителен: return "Invalid input"
Шпаргалка
Форматирование строк в Java использует спецификаторы формата с String.format():
%sдля строк%dдля целых чисел%.2fдля вещественных чисел с 2 знаками после запятой
Форматирование строк с несколькими значениями:
String name = "John";
int age = 25;
String text = String.format("Name: %s, Age: %d", name, age);
// Result: "Name: John, Age: 25"Форматирование десятичных чисел с заданной точностью:
double price = 19.99;
String formatted = String.format("Price: $%.2f", price);
// Result: "Price: $19.99"Попробуйте сами
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));
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap5HashSet Часть 2
Математика - Объединение HashSetsМатематика - Пересечение HashSetМатематика - Разность множествМатематика - Симметрическая разностьПодмножества и надмножестваИтерация по множествам8Продвинутые операции со строками
Основы StringBuilderВведение в StringBufferОсновы регулярных выраженийСопоставление шаблонов с RegexСтроковый токенизаторПродвинутое форматирование строк3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов