Menu
Coddy logo textTech

Zaawansowane formatowanie ciągów znaków

Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 49 z 59.

Formatowanie ciągów znaków w Java pozwala tworzyć sformatowane ciągi za pomocą specyfikatorów formatu. Najczęściej używane to %s dla ciągów znaków, %d dla liczb całkowitych i %.2f dla liczb dziesiętnych.

Sformatuj ciąg znaków za pomocą wielu wartości:

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

Po wykonaniu powyższego kodu zmienna text zawiera:

Name: John, Age: 25

Formatuj liczby dziesiętne z określoną precyzją:

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

Po wykonaniu powyższego kodu zmienna formatted zawiera:

Price: $19.99

challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie formatData, która przyjmuje cztery argumenty:

  1. String (name) — nazwę produktu
  2. double (price) — cenę produktu
  3. Liczbę całkowitą (quantity) — ilość
  4. String (format) — typ formatu wyjściowego

Metoda powinna formatować dane w zależności od tych typów:

  • "basic": zwróć "ITEM: {name}, PRICE: ${price}"
  • "detailed": zwróć "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}"
  • "total": zwróć "TOTAL FOR {quantity}x {name}: ${total}" (total = price * quantity) Wszystkie ceny powinny być sformatowane z dokładnie 2 miejscami po przecinku.

Zwracany komunikat:

  • Jeśli dowolne dane wejściowe mają wartość null lub format jest nieprawidłowy: zwróć "Invalid input"

Spróbuj swoich sił

import java.util.Scanner;

public class Main {
    public static String formatData(String name, double price, int quantity, String format) {
        // Wpisz tutaj swój kod
    }
    
    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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Java online