输入一个罗马数字字符串怎么转化为整数,用java代码演示
时间: 2023-05-23 15:07:26 浏览: 98
A:
可以使用 HashMap 来存储罗马数字字符和对应的整数值,然后遍历输入的罗马数字字符串,依次取出字符对应的整数值,如果后面一个字符代表的整数值比前面一个字符大,那么就减去前面字符代表的整数值。最后将所有字符代表的整数值累加起来,即得到转换后的整数。
以下是 Java 代码示例:
```
import java.util.HashMap;
public class RomanToInteger {
public int romanToInt(String s) {
if (s == null || s.length() == 0) {
return 0;
}
// 创建罗马数字字符和对应整数值的哈希表
HashMap<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 = map.get(s.charAt(s.length() - 1)); // 初始化为最后一个字符代表的整数值
for (int i = s.length() - 2; i >= 0; i--) { // 从后往前遍历罗马数字字符串
if (map.get(s.charAt(i)) < map.get(s.charAt(i + 1))) { // 如果后面一个字符代表的整数值比前面一个字符大
result -= map.get(s.charAt(i)); // 减去前面字符代表的整数值
} else {
result += map.get(s.charAt(i)); // 累加前面字符代表的整数值
}
}
return result;
}
}
```
阅读全文