大家好,我正在尝试编写一个程序来将罗马数字转换为阿拉伯数字。但是,我一直遇到 StringIndexOutOfBoundsException 问题:字符串索引超出范围:-1。下面是我的代码
package com.company;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println(romanToArabic("CIV"));
}
public static int romanToArabic(String romanNumeral){
Map <Character, Integer> map = new HashMap<>();
map.put('I', 1);
map.put('V', 5);
map.put('X', 10);
map.put('L', 50);
map.put('C', 100);
map.put('D', 500);
map.put('M', 1000);
int result = 0;
for (int i=0; i < romanNumeral.length(); i++){
int current = map.get(romanNumeral.charAt(i));
int next = map.get(romanNumeral.charAt(i-1));
if (i>0 && current > next){
result += current - 2*next;
}
result += current;
}
return result;
}