Hola a todas y a todos. Les comparto el siguiente código del Enum de Especialidad con el cual desde el front-end pueden usar minúsculas, mayúsculas, acentos o sin acentos las especialidades. Espero les sirva.
import com.fasterxml.jackson.annotation.JsonCreator;
import java.text.Normalizer;
public enum Especialidad {
    ORTOPEDIA,
    CARDIOLOGIA,
    GINECOLOGIA,
    DERMATOLOGIA;
    /**
     * Busca una especialidad basándose en una cadena de entrada,
     * manejando mayúsculas/minúsculas, acentos y espacios.
     *
     * @param input La cadena de entrada a buscar.
     * @return La especialidad correspondiente si se encuentra, o null si no.
     */
    @JsonCreator
    public static Especialidad fromString(String input) {
        if (input == null || input.trim().isEmpty()) {
            return null;
        }
        // 1. Normalizar a NFD y quitar diacríticos (acentos)
        String normalizedInput = Normalizer.normalize(input, Normalizer.Form.NFD)
                .replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
        // 2. Convertir a mayúsculas para comparación sin distinción de mayúsculas/minúsculas
        String upperCaseInput = normalizedInput.toUpperCase().trim();
        for (Especialidad especialidad : Especialidad.values()) {
            // Normalizar también el nombre del enum para la comparación
            String normalizedEnumName = Normalizer.normalize(especialidad.name(), Normalizer.Form.NFD)
                    .replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
            if (normalizedEnumName.equals(upperCaseInput)) {
                return especialidad;
            }
        }
        return null; // No se encontró una especialidad coincidente
    }
}
 
            