Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Desafio resolvido

package com.github.aldenyjr.logistica;

import java.util.Arrays;
import java.util.List;
import java.util.Set;

public class DiaSemama {

    private String dia;
    private boolean ehDiaUtil;

    private static final List<String> diasCorretos = Arrays.asList(
            "segunda",
            "terca",
            "quarta",
            "quinta",
            "sexta",
            "sabado",
            "domingo"
    );

    private static final Set<String> diasUteis = Set.of(
            "segunda",
            "terca",
            "quarta",
            "quinta",
            "sexta"
    );

    public DiaSemama(String dia) throws DiaInvalidoException {

        if (dia == null || !diasCorretos.contains(dia.toLowerCase())) {
            throw new DiaInvalidoException(dia);
        }

        this.dia = dia.toLowerCase();
        this.ehDiaUtil = diasUteis.contains(this.dia);
    }

    public boolean isEhDiaUtil() {
        return ehDiaUtil;
    }

    public String getDia() {
        return dia;
    }
}
package com.github.aldenyjr.logistica;

public class DiaInvalidoException extends Exception {

    public DiaInvalidoException(String dia) {
        super("Dia inválido: '" + dia + "'. Informe um dia válido (segunda a domingo).");
    }
}
package com.github.aldenyjr.logistica;

import java.util.Scanner;

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

        try {
            System.out.print("Digite o dia da semana (em letras minúsculas): ");
            String dia = teclado.nextLine();
            DiaSemama diaSemama = new DiaSemama(dia);

            if (diaSemama.isEhDiaUtil()) {
                System.out.println(diaSemama.getDia() + " é um dia útil");
            } else {
                System.out.println(diaSemama.getDia() + " não é um dia útil");

            }

        } catch (DiaInvalidoException e) {
            System.out.println(e.getMessage());
        }
        teclado.close();
    }
}

Resutado:

Digite o dia da semana (em letras minúsculas): quinta
quinta é um dia útil
2 respostas
solução!

Oi, Aldeny! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei bastante da sua organização em classes separadas e do uso de List e Set pra validar e verificar os dias úteis. A criação da exceção personalizada DiaInvalidoException deixou sua solução mais completa e próxima de um cenário real de aplicação, mostrando um cuidado extra com validação e tratamento de erro.

Uma dica interessante para o futuro é utilizar trim() junto com toLowerCase() para evitar problemas caso a pessoa digite espaços antes ou depois do dia.


String dia = teclado.nextLine().trim().toLowerCase();

if (diasUteis.contains(dia)) {
    System.out.println("dia util");
} else {
    System.out.println("nao eh dia util");
}

Nesse código, trim() remove espaços extras e toLowerCase() padroniza o texto, garantindo que a comparação funcione corretamente.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Oi, Lorena!

Muito obrigado pelo feedback detalhado e pelas observações. Fico muito satisfeito em saber que a organização em classes, o uso de List e Set e a criação da exceção personalizada agregaram valor à solução.

Excelente dica sobre o uso de trim() junto com toLowerCase(), realmente é um cuidado importante para tornar a validação ainda mais robusta em cenários reais.

Agradeço pela orientação e pelo apoio!