Menu
Coddy logo textTech

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 formateo de cadenas en Java te permite crear cadenas formateadas utilizando especificadores de formato. Los más comunes son %s para cadenas, %d para enteros, y %.2f para decimales.

Formatear una cadena con múltiples 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

Formatear 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 del producto
  2. Un double (price) para el precio del producto
  3. Un entero (quantity) para la cantidad
  4. Un String (format) para el tipo de formato de salida

El método debe formatear los datos basándose en estos tipos:

  • "basic": return "ITEM: {name}, PRICE: ${price}"
  • "detailed": return "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}"
  • "total": return "TOTAL FOR {quantity}x {name}: ${total}" (total = price * quantity) Todos los precios deben formatearse con exactamente 2 decimales.

Mensaje de retorno:

  • Si cualquier entrada es null o formato inválido: return "Invalid input"

Hoja de referencia

El formateo de cadenas en Java utiliza especificadores de formato con String.format():

  • %s para cadenas
  • %d para enteros
  • %.2f para decimales con 2 lugares decimales

Formatear cadenas con múltiples valores:

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

Formatear números decimales con precisión:

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

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