import java.util.HashMap;
import java.util.Map;
public class RomanToInteger {
private static final Map<Character, Integer> romanMap = new HashMap<>();
static {
romanMap.put('I', 1);
romanMap.put('V', 5);
romanMap.put('X', 10);
romanMap.put('L', 50);
romanMap.put('C', 100);
romanMap.put('D', 500);
romanMap.put('M', 1000);
}
public static int romanToInt(String s) {
int total = 0;
int prevValue = 0;
for (int i = s.length() - 1; i >= 0; i--) {
int currentValue = romanMap.get(s.charAt(i));
if (currentValue < prevValue) {
total -= currentValue;
} else {
total += currentValue;
}
prevValue = currentValue;
}
return total;
}
public static void main(String[] args) {
String roman = "XCVII";
int result = romanToInt(roman);
System.out.println("The integer value of " + roman + " is " + result);
}
}
/*
XCVII =
XC+V+I+I =
90+5+1+1 =
97
*/
/*
run:
The integer value of XCVII is 97
*/