en

Daily Challenge 🗓️

Votre dose quotidienne de veille technique pour briller en société (de devs).

Découvrez une question avec sa correction détaillée chaque jour sur un sujet au hasard :

Frontend, Backend, Mobile, Data, Web, AI, Infra... Tout ce qui se code ! 🧪

Friday 31 July 2026

-

Java et Craftsmanship

Java et Craftsmanship #11/24

Ce code

public class Numerals {

  private static final NavigableMap<Integer, String> CONVERSIONS = buildConversions();

  private Numerals() {}

  public static String toRoman(int arabic) {
    return highestKnownConversion(arabic).map(toRomanRepresentation(arabic)).orElse("");
  }

  private static Optional<Entry<Integer, String>> highestKnownConversion(int arabic) {
    return Optional.ofNullable(CONVERSIONS.floorEntry(arabic));
  }

  private static Function<Entry<Integer, String>, String> toRomanRepresentation(int arabic) {
    return conversion -> conversion.getValue() + toRoman(arabic - conversion.getKey());
  }

  private static NavigableMap<Integer, String> buildConversions() {
    NavigableMap<Integer, String> conversions = new TreeMap<>();

    conversions.put(1, "I");
    conversions.put(4, "IV");
    conversions.put(5, "V");
    conversions.put(9, "IX");
    conversions.put(10, "X");

    return conversions;
  }
}
Auteur: Équipe W3DStatut : PubliéeQuestion passée 484 fois
ModifierLien direct
1
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !

A propos du Daily Challenge 🗓️

Découvrez chaque jour, du lundi au vendredi, une question de QCM avec son corrigé détaillé pour enrichir vos connaissances tech. Les questions sont proposées par la communauté WeLoveDevs.com : experts et expertes, formateurs et formatrices, indépendants et indépendantes.WeLoveDevs.com accompagne les techs à la recherche de leur de job de rêve. Nous mettons également à disposition plus de 50 tests techniques dans différentes technologies pour ceux d'entre vous qui aimeraient tester leurs connaissances.

Historique

    ⚠️
    Votre navigateur est mal|non supporté !
    Nous vous conseillons d'utiliser un navigateur moderne comme Edge, Chrome ou Firefox
    En savoir plus