Java help
/*************************************************************************** * * A class for RomanNumerals. * Project 1, CSCI 212 * * @author K. Lord * */ public class RomanNumeral { private String rn; /**************************************************************************** * Create a new RomanNumeral object from a String. * * @param rnString A string made up of I,V,X,L,C,D,M * @exception IllegalArgumentException * If the string contains characters other than I,V,X,L,C,D,M */ public RomanNumeral (String rnString) { if (! isValidRomanNumeral(rnString)) throw new IllegalArgumentException("Bad roman numeral: "+rnString); rn=rnString; } /**************************************************************************** * Returns the string version of the Roman Numeral * * @return The String value of the Roman Numeral. */ public String toString() { return rn; } /**************************************************************************** * Determine if two Roman Numerals are equal (have the same string value) * * @return boolean */ public boolean equals(Object obj) { if (obj == null || getClass() != obj.getClass()) return false; RomanNumeral other = (RomanNumeral) obj; return (!rn.equals(other.rn)); } // equals /**************************************************************************** * Calculate the integer value of the Roman Numeral. * * @return the integer value of the Roman Numeral */ public int getDecimalValue() { int result = getCharValue(rn.charAt(rn.length()-1)); for (int i=rn.length()-2; i >=0; i--) if (getCharValue(rn.charAt(i))<getCharValue(rn.charAt(i+1))) result -= getCharValue(rn.charAt(i)); else result += getCharValue(rn.charAt(i)); return result; } /**************************************************************************** * Determine if a given String contains valid Roman Numeral characters. * * @param rnString Potential Roman Numeral String * @return boolean */ private boolean isValidRomanNumeral(String rnString) { for (int i=0;i<rnString.length();i++) { if ( (rnString.charAt(i) != 'I') && (rnString.charAt(i) != 'V') && (rnString.charAt(i) != 'X') && (rnString.charAt(i) != 'L') && (rnString.charAt(i) != 'C') && (rnString.charAt(i) != 'D') && (rnString.charAt(i) != 'M') ) return false; } //for return true; } // isValidRomanNumeral /**************************************************************************** * Find the integer value of a single Roman Numeral character. * @param roman A Roman Numeral Character * @return The integer value of the Roman Numeral character. */ private int getCharValue(char roman) { if (roman == 'I') return 1; if (roman == 'V') return 5; if (roman == 'X') return 10; if (roman == 'L') return 50; if (roman == 'C') return 100; if (roman == 'D') return 500; if (roman == 'M') return 1000; return 0; } /**************************************************************************** * Compare two Roman Numerals */ public int compareTo(Object other) { return getDecimalValue() - ((RomanNumeral) other).getDecimalValue(); } }