Menu
CoddyTech

Formattazione avanzata delle stringhe

Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 49 di 59.

La formattazione delle stringhe in Java consente di creare stringhe formattate usando specificatori di formato. I più comuni sono %s per le stringhe, %d per gli interi e %.2f per i decimali.

Formatta una stringa con più valori:

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

Dopo aver eseguito il codice sopra, text contiene:

Name: John, Age: 25

Formatta i numeri decimali con precisione:

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

Dopo aver eseguito il codice qui sopra, formatted contiene:

Price: $19.99

challenge icon

Sfida

Facile

Crea un metodo denominato formatData che accetti quattro argomenti:

  1. Una String (name) per il nome di un prodotto
  2. Un double (price) per il prezzo del prodotto
  3. Un integer (quantity) per la quantità
  4. Una String (format) per il tipo di formato dell'output

Il metodo dovrebbe formattare i dati in base a questi tipi:

  • "basic": restituisci "ITEM: {name}, PRICE: ${price}"
  • "detailed": restituisci "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}"
  • "total": restituisci "TOTAL FOR {quantity}x {name}: ${total}" (total = price * quantity)

Tutti i prezzi devono essere formattati con esattamente 2 cifre decimali.

Messaggio da restituire:

  • Se un input è null o il formato non è valido: restituisci "Invalid input"

Provalo tu

import java.util.Scanner;

public class Main {
    public static String formatData(String name, double price, int quantity, String format) {
        // Scrivi il tuo codice qui
    }
    
    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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Java online