package universalteam.universalcore.utils.math; public class RomanNumeral { protected static final int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; protected static final String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; public static String toRomanNumeral(int number) { StringBuilder builder = new StringBuilder(); int remaining = number; for (int i = 0; i < values.length; ++i) remaining = appendRomanNumeral(remaining, values[i], symbols[i], builder); return builder.toString(); } protected static int appendRomanNumeral(int remaining, int value, String symbol, StringBuilder builder) { while (remaining >= value) { builder.append(symbol); remaining -= value; } return remaining; } }