得到";索引在数组""的边界之外;异常和I';I’我不知道为什么
本文关键字:quot 为什么 异常 我不知道 边界 索引 数组 得到 | 更新日期: 2023-09-27 18:02:23
public string[] ReverseString(string input)
{
int startPos = 0;
int stringLength = input.Length;
string text = input;
string[] inputArr = new string[stringLength];
string[] outputArr = new string[stringLength];
for (int index = 0; index < stringLength; index++)
{
inputArr[index] = text.Substring(startPos, 1);
++startPos;
}
int outputIndex = 0;
for (int index = stringLength; index > 0; index--)
{
outputArr[outputIndex] = inputArr[index];
++outputIndex;
}
return outputArr;
}
在这一行:
outputArr[outputIndex] = inputArr[index];
编译器给了我一个错误,说:
"索引超出了数组的界限。">
为什么?它似乎在另一个数组中循环得很好,但一旦它碰到这一行,就会给我一个错误。
因一个错误而关闭。此循环:
for (int index = stringLength; index > 0; index--)
index
的范围是stringLength
到1
,而它应该是stringLength - 1
到0
。更改为:
for (int index = stringLength - 1; index >= 0; index--)
问题是,在第二个循环中,使用索引跳过0。
outputArr[outputIndex] = inputArr[index];
要修复它,你应该更改
inputArr[index]
至
inputArr[index - 1]
。