diff --git a/tcr-roman-numerals/src/main/java/fr/ippon/kata/numeral/Numerals.java b/tcr-roman-numerals/src/main/java/fr/ippon/kata/numeral/Numerals.java index 9ae95cbd7ad4bfba429a2158ea1183b987af797c..2217498c9a9b40cce0f86b94407dc096804c546c 100644 --- a/tcr-roman-numerals/src/main/java/fr/ippon/kata/numeral/Numerals.java +++ b/tcr-roman-numerals/src/main/java/fr/ippon/kata/numeral/Numerals.java @@ -2,18 +2,15 @@ package fr.ippon.kata.numeral; import java.util.Map.Entry; import java.util.NavigableMap; +import java.util.Optional; import java.util.TreeMap; public class Numerals { private static final NavigableMap<Integer, String> CONVERSIONS = buildConversions(); public static String toRoman(int arabic) { - if (arabic == 0) { - return ""; - } - - Entry<Integer, String> highestKnownConversion = CONVERSIONS.floorEntry(arabic); - return highestKnownConversion.getValue() + toRoman(arabic - highestKnownConversion.getKey()); + Optional<Entry<Integer, String>> highestKnownConversion = Optional.ofNullable(CONVERSIONS.floorEntry(arabic)); + return highestKnownConversion.map(conversion -> conversion.getValue() + toRoman(arabic - conversion.getKey())).orElse(""); } private static NavigableMap<Integer, String> buildConversions() {