我在第String行fromIndexString = topStiva.Substring(topStivaLength + 1,topStiva.Length)有问题; 。我表明topStiva.Length已经出局或范围。
代码如下:
String actiuneRezultata(String topStiva,String cuvIntr){
int index = -1;
String primulCharCuvIntr = cuvIntr.Substring(0, 1);
if (primulCharCuvIntr.Equals("+") == true)
primulCharCuvIntr = "\\" + primulCharCuvIntr;
else
if (primulCharCuvIntr.Equals("*") == true)
primulCharCuvIntr = "\\" + primulCharCuvIntr;
else
if (primulCharCuvIntr.Equals("*") == true)
primulCharCuvIntr = "\\" + primulCharCuvIntr;
else
if (primulCharCuvIntr.Equals("*") == true)
primulCharCuvIntr = "\\" + primulCharCuvIntr;
else
if (primulCharCuvIntr.Equals("*") == true)
primulCharCuvIntr = "\\" + primulCharCuvIntr;
for (int i = 0; i < ta.Length; i++) {
if (ta[i].CompareTo(primulCharCuvIntr) == 0) {
index = i;
break;
}
}
int topStivaLength = topStiva.Length - 1;
while (topStiva[topStivaLength] >= '0' && topStiva[topStivaLength] <= 9)
topStivaLength--;
String fromIndexString = topStiva.Substring(topStivaLength + 1, topStiva.Length);
int fromIndex = int.Parse(fromIndexString);
if (index < 0)
return "Nu face parte din gramatica!";
else
return tabela[fromIndex][index];
}
值topStiva是从调用actiuneRezultata(stivaAPD.Peek()。ToString(),another_value)中获取它的
我在stivaAPD中看到,在推出一些价值后,我正在打算。那为什么它超出范围?请帮助!
答案 0 :(得分:0)
如果topStivaLength为-1,则此(topStiva[topStivaLength]
将导致异常。
如果topStivaLength为0且topStiva为空字符串,则此(topStiva[topStivaLength]
将导致异常。
下次准确指出您获得异常的行。
答案 1 :(得分:0)
String.Substring
的第二个参数是所需子字符串的长度。你好像在调用它,就好像它是子串的(独占)结束索引一样。尝试调用以下内容,使您的长度等于到字符串结束索引的距离。
topStiva.Substring(topStivaLength+1, topStiva.Length - (topStivaLength+1));