Difficile
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: Clément DevosStatut : PubliéeQuestion passée 444 fois
Modifier
1
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !
1
Écrire une implémentation en Java du code kata FizzBuzz.1
Écrire un code Java qui retourne l'entier 511
Que signifie SRP ?1
Quelle fonctionnalité de Java 7 n'a été utilisable qu'en Java 8?1
Code Java qui remplace les clés d'un template par leurs valeurs.4
Ce code permet de récupérer aléatoirement des nombres entre 1 et 31 dans les résultats. Il aurait fallu déclarer SimpleDateFormat dans le Thread.5
Écrire une fonction qui retourne le premier caractère d'une chaîne de caractères en Java