Menu
CoddyTech

Formato Avanzado de Cadenas

Parte de la sección Lógica y Flujo del Journey de Java de Coddy. Lección 49 de 59.

El formato de cadenas en Java te permite crear cadenas con formato usando especificadores de formato. Los más comunes son %s para cadenas, %d para números enteros y %.2f para números decimales.

Formatea una cadena con varios valores:

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

Después de ejecutar el código anterior, text contiene:

Name: John, Age: 25

Da formato a los números decimales con precisión:

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

Después de ejecutar el código anterior, formatted contiene:

Price: $19.99

challenge icon

Desafío

Fácil

Crea un método llamado formatData que tome cuatro argumentos:

  1. Un String (name) para el nombre de un producto
  2. Un double (price) para el precio del producto
  3. Un integer (quantity) para la cantidad
  4. Un String (format) para el tipo de formato de salida

El método debe dar formato a los datos según estos tipos:

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

Todos los precios deben tener exactamente 2 decimales.

Devuelve el mensaje:

  • Si alguna entrada es null o el formato no es válido: devuelve "Invalid input"

Pruébalo tú mismo

import java.util.Scanner;

public class Main {
    public static String formatData(String name, double price, int quantity, String format) {
        // Escribe tu código aquí
    }
    
    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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de Java online