1.数组建一个图表
2.用字符串里的值去匹配图表里的值
3.匹配到了然后进行运算,分三种情况,一种是三个相同的数字,比如III为3,第二种是大的数字在前,例如VI为6,第三种是小数字在前大数字在后,例如IV为4,前两种可以直接相加
//定义一个图表
int graph[] = new int[400];
graph['I'] = 1;
graph['V'] = 5;
graph['X'] = 10;
graph['L'] = 50;
graph['C'] = 100;
graph['D'] = 500;
graph['M'] = 1000;
//str是传进来的罗马字母,把它转换成char
char num[]=str.toCharArray();
int sum=num[0];
//因为sum已经默认字符的第一位相加了
for(int i=0;i<num.length-1;i++){
if(graph[num[i]]>=graph[num[i+1]]){
//这是第一种和第二种情况,可以直接相加
//已经把num[i]加过了,当i=0时,sum已经定义为sum=num[0]
sum+=num[i+1];
}else{
//当第三种情况时,需要进行处理,num[i+1]-num[i],例如IV为4,则为5-1,但是前面已经把num[i]加上了,所以要减去两个num[i]
sum+=num[i+1]-2*num[i];
}
}