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
Wyzwanie
ŁatwyUtwórz metodę o nazwie formatData, która przyjmuje cztery argumenty:
- String (
name) — nazwę produktu - double (
price) — cenę produktu - Liczbę całkowitą (
quantity) — ilość - 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));
}
}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
1Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DDodawanie i odejmowanie macierzyTablice postrzępioneTablice 3D i większeTypowe wzorce dla tablic 2DPodsumowanie — wszystko o tablicach2HashMap część 1
Czym jest HashMap?Deklarowanie HashMapDostęp do wartościSprawdzanie, czy klucz istniejeModyfikowanie słownikówPodsumowanie — HashMap5HashSet — część 2
Matematyka — suma zbiorów HashSetMatematyka — część wspólna zbiorów HashSetMatematyka — różnica zbiorówMatematyka — różnica symetrycznaPodzbiory i nadzbioryIterowanie po zbiorach8Zaawansowane operacje na ciągach znaków
Podstawy StringBuilderWprowadzenie do StringBufferPodstawy wyrażeń regularnychDopasowywanie wzorców za pomocą RegexTokenizer ciągów znakówZaawansowane formatowanie ciągów znaków3HashMap — część 2
Metody HashMapIterowanie za pomocą keySet()Iterowanie za pomocą entrySet()Zagnieżdżona HashMapPowtórka — zarządzanie magazynemPowtórka — operacje na HashMap6Zaawansowany przepływ sterowania
Instrukcje etykietująceWyrażenie switchDopasowywanie wzorcówKlauzule ochronnePowtórzenie — przepływ sterowania9Projekt — licznik unikalnych słów
Wprowadzanie i przechowywanie tekstuPrzetwarzanie słówPoćwicz samodzielnie: Kompilator Java online