Menu
Coddy logo textTech

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 ti 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 numeri 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 qui 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 chiamato formatData che accetta quattro argomenti:

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

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

  • "basic": restituisce "ITEM: {name}, PRICE: ${price}"
  • "detailed": restituisce "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}"
  • "total": restituisce "TOTAL FOR {quantity}x {name}: ${total}" (total = price * quantity) Tutti i prezzi devono essere formattati con esattamente 2 cifre decimali.

Restituisci il messaggio:

  • 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 qui il tuo codice
    }
    
    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