Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
讲一个输入的罗马数字变成相应的整数。
首先要知道每一个罗马数字代表与组成含义。
public int romanInput(String s){
int nums[] = new int[s.length()];
int sum =0;
for(int i =0;i<s.length();i++){
switch(s.charAt(i)){
case 'M':
nums[i]=1000;
break;
case 'D':
nums[i]=500;
break;
case 'C':
nums[i]=100;
break;
case 'L':
nums[i]=50;
break;
case 'X':
nums[i]=10;
break;
case 'V':
nums[i]=5;
break;
case 'I':
nums[i]=1;
break;
}
}
for(int i=0;i<nums.length-1;i++){
if(nums[i]>=nums[i+1]){
sum = sum+nums[i];
}else {
sum = sum-nums[i];
}
}
return sum+nums[nums.length];
}
运用switch先将每一个罗马字符对应的整数进行替换。