这个题目是把罗马数字转换为整数,比如输入字符串 MCMLXXXIV,输出为整数1984。观测罗马数字的规律,我们得到,其实可以直接相加每个字符代表的整数即可,比如CLIII这个罗马数字对应的整数即为100+50+1+1+1=153。但是,若是两个字符代表一个数字时,我们就需要注意了,比如IV即为5-1=4。因此,我们得到规律,没读入字符串的一个字符,都将它与之后一个字符代表的数字比较,如果前者较小,则将符号改为负,比如,IV,I---1<V---5,因此整数为-1+5=4.
在对字符串的每一个字符处理过程中,我们不能走到最后一个字符的位置,因为每次循环我们都要把当前字符与下一个字符比较来确定符号,如果当前字符为最后一个字符,则会报空指针异常。
原文地址:http://blog.csdn.net/u010691636/article/details/43199781