C#了解如何向后走一个字符串

时间:2018-02-13 02:26:55

标签: c#

我参加了一个c#课程,它给了我一些我复制和粘贴的代码,还有一些我自己做的。 无论如何,我不明白这个for()循环为什么我们要从int i = target.Length属性中减去1?

static string reverseString(string target)
{
    String result = "";

    // walk the target string backwards
    for (int i = target.Length - 1; i >= 0; i--)
    {
        // add this letter to the result
        result += target[i];
    }

    // return the result to the calling code
    return result;
}

2 个答案:

答案 0 :(得分:1)

举个例子。

string target = "ABC";
// target can be thought of as an array of characters
// target[0] holds 'A'
// target[1] holds 'B'
// target[2] holds 'C'

int length = target.Length; 
// length would be 3 because Length is the count of the chars
// but if you were to try and get the value of target[3] you would get an error 
// because target ends at [2] (index 2)

所以你需要从.Length - 1开始,然后向后工作到0(不是1)。

答案 1 :(得分:0)

它从Length - 1开始,因为这是最后一个允许的索引。请注意,它还包括索引0(因为"> = 0"),这是第一个允许的索引。增量为-1,因此我们考虑减少索引的值而不是增加索引的值。