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
Desafío
FácilCrea un método llamado formatData que tome cuatro argumentos:
- Un String (
name) para el nombre del producto - Un double (
price) para el precio del producto - Un entero (
quantity) para la cantidad - 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():
%spara cadenas%dpara enteros%.2fpara 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));
}
}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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap5HashSet Parte 2
Matemáticas - Unión de HashSetsMatemáticas - Intersección de HashSetMatemáticas - Diferencia de ConjuntosMatemáticas - Diferencia SimétricaSubconjuntos y SuperconjuntosIterando Sobre Conjuntos8Operaciones Avanzadas con Cadenas
Conceptos Básicos de StringBuilderIntroducción a StringBufferConceptos Básicos de Expresiones RegularesCoincidencia de Patrones con RegexTokenizador de CadenasFormato Avanzado de Cadenas3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de Palabras