As we're all throwing in examples in different languages, heres the src to a converter I had to do in college last year :
... pity its the wrong way around though![]()
Code:public class convert { public static void main (String[] args) { int userInput; System.out.print("Please enter a number to convert : "); userInput = TextIO.getInt(); if ((userInput > 3999) || (userInput < 0)) { System.out.println("Can only convert numbers between 0 and 3999"); } if ((Integer.toString(userInput).length() > 0) && (Integer.toString(userInput).length() < 5)) { System.out.println(converter(userInput)); } } public static String converter(int int_number) { String to_return = ""; if (Integer.toString(int_number).length() == 1) { to_return = onesToRomanNumerals(int_number); } else if (Integer.toString(int_number).length() == 2) { to_return = tensToRomanNumerals(int_number); } else if (Integer.toString(int_number).length() == 3) { to_return = hunsToRomanNumerals(int_number); } else if (Integer.toString(int_number).length() == 4) { to_return = thousandsToRomanNumerals(int_number); } return to_return; } public static String thousandsToRomanNumerals(int int_number) { String var_temp = Integer.toString(int_number); String var_huns = var_temp.substring(var_temp.length() - 3); String var_thou = var_temp.substring(var_temp.length() - 4, var_temp.length() - 3); String to_return = ""; switch (Integer.parseInt(var_thou)) { case 0: to_return = hunsToRomanNumerals(Integer.parseInt(var_huns)); break; case 1: to_return = "M" + hunsToRomanNumerals(Integer.parseInt(var_huns)); break; case 2: to_return = "MM" + hunsToRomanNumerals(Integer.parseInt(var_huns)); break; case 3: to_return = "MMM" + hunsToRomanNumerals(Integer.parseInt(var_huns)); break; } return to_return; } public static String hunsToRomanNumerals(int int_number) { String var_temp = Integer.toString(int_number); String var_tens = "", var_huns = ""; if (Integer.toString(int_number).length() == 3) { var_tens = var_temp.substring(var_temp.length() - 2); var_huns = var_temp.substring(var_temp.length() - 3, var_temp.length() - 2); } else if (Integer.toString(int_number).length() == 2) { var_tens = var_temp.substring(var_temp.length() - 2); var_huns = "0"; } else if (Integer.toString(int_number).length() == 1) { var_tens = "0"; var_huns = "0"; } String to_return = ""; switch (Integer.parseInt(var_huns)) { case 0: to_return = tensToRomanNumerals(Integer.parseInt(var_tens)); break; case 1: to_return = "C" + tensToRomanNumerals(Integer.parseInt(var_tens)); break; case 2: to_return = "CC" + tensToRomanNumerals(Integer.parseInt(var_tens)); break; case 3: to_return = "CCC" + tensToRomanNumerals(Integer.parseInt(var_tens)); break; case 4: to_return = "CD" + tensToRomanNumerals(Integer.parseInt(var_tens)); break; case 5: to_return = "D" + tensToRomanNumerals(Integer.parseInt(var_tens)); break; case 6: to_return = "DC" + tensToRomanNumerals(Integer.parseInt(var_tens)); break; case 7: to_return = "DCC" + tensToRomanNumerals(Integer.parseInt(var_tens)); break; case 8: to_return = "DCCC" + tensToRomanNumerals(Integer.parseInt(var_tens)); break; case 9: to_return = "CM" + tensToRomanNumerals(Integer.parseInt(var_tens)); break; } return to_return; } public static String tensToRomanNumerals(int int_number) { String var_temp = Integer.toString(int_number); String var_ones = "", var_tens = ""; if (Integer.toString(int_number).length() == 1) { var_ones = Integer.toString(int_number); var_tens = "0"; } else if (Integer.toString(int_number).length() == 2) { var_ones = var_temp.substring(var_temp.length() - 1); var_tens = var_temp.substring(var_temp.length() - 2, var_temp.length() - 1); } String to_return = ""; switch (Integer.parseInt(var_tens)) { case 0: to_return = onesToRomanNumerals(Integer.parseInt(var_ones)); break; case 1: to_return = "X" + onesToRomanNumerals(Integer.parseInt(var_ones)); break; case 2: to_return = "XX" + onesToRomanNumerals(Integer.parseInt(var_ones)); break; case 3: to_return = "XXX" + onesToRomanNumerals(Integer.parseInt(var_ones)); break; case 4: to_return = "XL" + onesToRomanNumerals(Integer.parseInt(var_ones)); break; case 5: to_return = "L" + onesToRomanNumerals(Integer.parseInt(var_ones)); break; case 6: to_return = "LX" + onesToRomanNumerals(Integer.parseInt(var_ones)); break; case 7: to_return = "LXX" + onesToRomanNumerals(Integer.parseInt(var_ones)); break; case 8: to_return = "LXXX" + onesToRomanNumerals(Integer.parseInt(var_ones)); break; case 9: to_return = "XC" + onesToRomanNumerals(Integer.parseInt(var_ones)); break; } return to_return; } public static String onesToRomanNumerals(int int_number) { String var_ones = Integer.toString(int_number); var_ones = var_ones.substring(var_ones.length() - 1 ); String to_return = ""; switch (Integer.parseInt(var_ones)) { case 0: to_return = ""; break; case 1: to_return = "I"; break; case 2: to_return = "II"; break; case 3: to_return = "III"; break; case 4: to_return = "IV"; break; case 5: to_return = "V"; break; case 6: to_return = "VI"; break; case 7: to_return = "VII"; break; case 8: to_return = "VIII"; break; case 9: to_return = "IX"; break; } return to_return; } }




Reply With Quote