public static int romanToInteger(String s) {
char[] charArray = s.toCharArray();
int rez = 0;
for (char e: charArray){
switch (e){
case 'I': rez++;
break;
case 'V': rez+=5;
break;
case 'X': rez+=10;
break;
case 'L': rez+=50;
break;
case 'C': rez+=100;
break;
case 'D': rez+=500;
break;
case 'M': rez+=1000;
break;
}
}
return rez;
}
Вроде все просто и код работает, а первый пункт не пропускаетpackage com.javarush.task.task37.task3714;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
/*
Древний Рим
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Input a roman number to be converted to decimal: ");
String romanString = bufferedReader.readLine();
System.out.println("Conversion result equals " + romanToInteger(romanString));
}
public static int romanToInteger(String s) {
Map<Character, Integer> romanMap = new HashMap<>();
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);
int sum = romanMap.get(s.charAt(s.length() - 1));
for (int i = s.length() - 2; i >= 0; --i) {
if (romanMap.get(s.charAt(i)) < romanMap.get(s.charAt(i + 1))) {
sum -= romanMap.get(s.charAt(i));
} else {
sum += romanMap.get(s.charAt(i));
}
}
return sum;
}
}