得到";索引在数组""的边界之外;异常和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];

编译器给了我一个错误,说:

"索引超出了数组的界限。">

为什么?它似乎在另一个数组中循环得很好,但一旦它碰到这一行,就会给我一个错误。

得到";索引在数组""的边界之外;异常和I';I’我不知道为什么

因一个错误而关闭。此循环:

for (int index = stringLength; index > 0; index--)

index的范围是stringLength1,而它应该是stringLength - 10。更改为:

for (int index = stringLength - 1; index >= 0; index--)

问题是,在第二个循环中,使用索引跳过0。

outputArr[outputIndex] = inputArr[index];

要修复它,你应该更改

inputArr[index]

inputArr[index - 1]