EpicEnchants/src/main/java/com/songoda/epicenchants/utils/single/RomanNumber.java

31 lines
753 B
Java
Raw Normal View History

2019-02-19 14:23:20 +01:00
package com.songoda.epicenchants.utils.single;
import java.util.TreeMap;
public class RomanNumber {
private static final TreeMap<Integer, String> TREE_MAP = new TreeMap<Integer, String>() {{
2019-02-19 14:23:20 +01:00
put(1000, "M");
put(900, "CM");
put(500, "D");
put(400, "CD");
put(100, "C");
put(90, "XC");
put(50, "L");
put(40, "XL");
put(10, "X");
put(9, "IX");
put(5, "V");
put(4, "IV");
put(1, "I");
2019-04-24 11:40:40 +02:00
put(-1, "-1");
2019-02-19 14:23:20 +01:00
}};
public static String toRoman(int number) {
2019-04-24 11:40:40 +02:00
int l = TREE_MAP.floorKey(number);
2019-02-19 14:23:20 +01:00
if (number == l) {
2019-04-24 11:40:40 +02:00
return TREE_MAP.get(number);
2019-02-19 14:23:20 +01:00
}
2019-04-24 11:40:40 +02:00
return TREE_MAP.get(l) + toRoman(number - l);
2019-02-19 14:23:20 +01:00
}
}