| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import java.util.Map;
- import java.util.LinkedHashMap;
-
- public class RomanNumeral {
-
- private int arabicNumeral;
-
- private static final Map<Integer, String> arabicToRomanConversions = new LinkedHashMap<>();
-
- static {
- arabicToRomanConversions.put(1000, "M");
- arabicToRomanConversions.put(900, "CM");
- arabicToRomanConversions.put(500, "D");
- arabicToRomanConversions.put(400, "CD");
- arabicToRomanConversions.put(100, "C");
- arabicToRomanConversions.put(90, "XC");
- arabicToRomanConversions.put(50, "L");
- arabicToRomanConversions.put(40, "XL");
- arabicToRomanConversions.put(10, "X");
- arabicToRomanConversions.put(9, "IX");
- arabicToRomanConversions.put(5, "V");
- arabicToRomanConversions.put(4, "IV");
- arabicToRomanConversions.put(1, "I");
- }
-
- public RomanNumeral(int arabicNumeral) {
- this.arabicNumeral = arabicNumeral;
- }
-
-
- public String getRomanNumeral() {
- StringBuilder romanNumeral = new StringBuilder();
-
- for (Map.Entry<Integer, String> conversion : arabicToRomanConversions.entrySet()) {
- while (arabicNumeral / conversion.getKey() > 0) {
- arabicNumeral -= conversion.getKey();
-
- romanNumeral.append(conversion.getValue());
- }
- }
-
- return romanNumeral.toString();
- }
- }
|