【发布时间】:2018-12-28 06:07:43
【问题描述】:
在我的字符串中,我希望将一个值与下一个值进行比较。所以给定IVI,我想检查V后面是否跟着I,然后加4。如果没有,就加1。
for(int i = 0; i < s.Length; i++){
if(s[i] == 'I'){
if(s[i+1] == 'V'){
Console.WriteLine("1");
sum += 4;
}
else if(s[i] == 'X'){
Console.WriteLine("2");
sum += 9;
}
else{
Console.WriteLine("3");
sum += roman[s[i]];
}
}
但是它超出了 s[i+1] 的范围,但是我如何阻止它检查那么远呢?如果我使用 s.Length-1,那么我将无法获得最后一个值。
【问题讨论】:
-
在访问
s[i+1]之前,您肯定可以将i与s.Length进行比较吗?如果语句不限于一个条件,您可以使用&&(and) 和||(or) 组合多个条件。 -
如果要将罗马数字转换为整数,请使用 stackoverflow.com/questions/17711746/…