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

dia habil con un arreglo

import java.util.Scanner;

public class DiaHabil { public static void main(String[] args){ Scanner scanf = new Scanner(System.in);

    String[] Habil = {"lunes","martes","miercoles","jueves","viernes"};
    System.out.println("Ingrese el día de la semana (en minúsculas): ");
    String busqueda = scanf.nextLine();

    if(existeEnArreglo(Habil, busqueda) == -1){
        System.out.println(busqueda + " no es un día hábil");
    }else{
        System.out.println(busqueda + " es un dia habil");
    }

}
public static int existeEnArreglo(String[] arreglo, String busqueda) {
        for(int i =0; i < arreglo.length; i++) {
            if(arreglo[i].equals(busqueda)) {
                return 0;
            }
        }
        return -1;
    }

}

1 respuesta

Hola María, espero que estés bien

Parece que estás intentando verificar si un día de la semana es hábil o no utilizando un arreglo en Java. Tu código está casi correcto, pero hay un pequeño detalle que podrías ajustar para que la salida sea exactamente como se espera en el ejemplo proporcionado.

En tu método existeEnArreglo, actualmente estás devolviendo 0 si el día se encuentra en el arreglo de días hábiles. Sería más claro devolver true o false en lugar de 0 y -1, ya que estamos trabajando con una condición booleana (si el día es hábil o no).

Aquí tienes una versión ajustada de tu código:

import java.util.Scanner;

public class DiaHabil {
    public static void main(String[] args){
        Scanner scanf = new Scanner(System.in);

        String[] Habil = {"lunes","martes","miercoles","jueves","viernes"};
        System.out.println("Ingrese el día de la semana (en minúsculas): ");
        String busqueda = scanf.nextLine();

        if(existeEnArreglo(Habil, busqueda)){
            System.out.println(capitalize(busqueda) + " es un día hábil.");
        } else {
            System.out.println(capitalize(busqueda) + " no es un día hábil.");
        }
    }

    public static boolean existeEnArreglo(String[] arreglo, String busqueda) {
        for(String dia : arreglo) {
            if(dia.equals(busqueda)) {
                return true;
            }
        }
        return false;
    }

    public static String capitalize(String str) {
        if (str == null || str.isEmpty()) {
            return str;
        }
        return str.substring(0, 1).toUpperCase() + str.substring(1);
    }
}

He añadido un método capitalize para que la primera letra del día se muestre en mayúscula, tal como se espera en el ejemplo de salida.

Espero que esta solución te sea útil y que te ayude a entender mejor cómo trabajar con arreglos y condicionales en Java. ¡Bons estudios!