Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Verificación de días hábiles con switch

import java.util.Scanner;
public class Main
{
    public static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        System.out.println("Ingrese el día de la semana (en minúsculas):");

        String dia = scanner.nextLine();
        
        switch (dia) {
            
            case "lunes":
            case "martes":
            case "miércoles":
            case "jueves":
            case "viernes":
                
                System.out.println(capitalize(dia) +" es un día hábil.");
                break;
                
            case "sábado":
            case "domingo":
                
                System.out.println(capitalize(dia) +" no es un día hábil.");
                break;
                
            default:
            
                System.out.println("Valor incorrecto");
                break;
                
        }
        
    }
    
    private static String capitalize(String str)
    {
        String strUpper= str.substring(0,1).toUpperCase();
        return str.replace(str.substring(0,1), strUpper);
 
    }
}
1 respuesta

¡Hola María, espero que estés bien!

Tu código está casi perfecto para resolver el problema de verificar si un día es hábil o no. Sin embargo, hay un pequeño detalle en la función capitalize que podría causar un comportamiento inesperado.

Actualmente, estás usando str.replace() que reemplaza todas las ocurrencias del primer carácter en la cadena. Esto no es necesario ya que solo necesitas cambiar la primera letra a mayúscula.

Una forma más segura de hacerlo es concatenar directamente la primera letra en mayúscula con el resto de la cadena.

Aquí te dejo una versión corregida de la función capitalize:

private static String capitalize(String str) {
    String strUpper = str.substring(0, 1).toUpperCase();
    return strUpper + str.substring(1);
}

Con esta modificación, tu programa debería funcionar correctamente y capitalizar solo la primera letra del día ingresado. Así, cuando el usuario ingrese "miércoles", el programa responderá con "Miércoles es un día hábil." tal como se espera.

Espero que esto te ayude y que tu programa funcione como deseas. ¡Bons estudios!