Home Java Java-tips 45examples Misc Roman Convert to Roman Numerals

Ask Questions?

View Latest Questions


 
 

Convert to Roman Numerals
Posted on: July 22, 2006 at 12:00 AM
The following example program converts from decimal input to roman numerals.

Java Notes

Example - Convert to Roman Numerals

The following example program converts from decimal input to roman numerals. It is an example of arrays, throwing and catching exceptions, NetBeans. The NetBeans 5.0 project (roman.zip) used the NetBeans GUI editor. The model/logic is completely independent of the user interface, and could just as easily be called from a console mode program.

Source code for model

  1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 
  9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
// Program: Convert from binary (decimal) to roman numerals.
//          This is the model without any user interface.
// Author : Fred Swartz
// Date   : 23 Jan 2006

package roman;

public class RomanConversion {
    
    // Parallel arrays used in the conversion process.
    private static final String[] RCODE = {"M", "CM", "D", "CD", "C", "XC", "L",
                                           "XL", "X", "IX", "V", "IV", "I"};
    private static final int[]    BVAL  = {1000, 900, 500, 400,  100,   90,  50,
                                           40,   10,    9,   5,   4,    1};
    
    //=========================================================== binaryToRoman
    public static String binaryToRoman(int binary) {
        if (binary <= 0 || binary >= 4000) {
            throw new NumberFormatException("Value outside roman numeral range.");
        }
        String roman = "";         // Roman notation will be accumualated here.
        
        // Loop from biggest value to smallest, successively subtracting,
        // from the binary value while adding to the roman representation.
        for (int i = 0; i < RCODE.length; i++) {
            while (binary >= BVAL[i]) {
                binary -= BVAL[i];
                roman  += RCODE[i];
            }
        }
        return roman;
    }  
}

Source code for listener handler in GUI interface