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 457 fois
Modifier
1
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !
5
Écrire une fonction qui retourne le premier caractère d'une chaîne de caractères en Java1
Que signifie SRP ?1
Code Java qui remplace les clés d'un template par leurs valeurs.1
Quel est le résultat du code suivant ?
```java
try {
return 42;
} finally {
return 1337;
}
```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.1
Quelle fonctionnalité de Java 7 n'a été utilisable qu'en Java 8?1
Écrire un code Java qui retourne l'entier 51