0

我收到一个让我发疯的错误......我找不到这段代码有什么问题,有人会这么好心给我一些帮助吗?


using System;

class Program
{
    static void Main(string[] args)
    {   
        for(int i = args[0].Length; i >= 1; i--){
            Console.WriteLine(args[0].Substring(i, 1));
        }
    }
}

运行示例应类似于:program.exe 6735

输出将如下所示:

5

3

7

6

到目前为止,我唯一得到的是:

未处理的异常:System.ArgumentOutOfRangeException:startIndex + length > this.length 参数名称:System.String.Substring 处的长度(Int32 startIndex,Int32 长度)[0x00000] in :0 处 Program.Main(System.String[] args)[ 0x00000] 在 :0

预先感谢您的帮助!

4

2 回答 2

3

for(int i = args[0].Length; i >= 1; i--)

应该

for(int i = args[0].Length - 1; i >= 0; i--)

于 2013-08-22T22:19:09.340 回答
1

args[0].Length是你的字符串的长度。由于字符串被0索引,长度是字符串中最后一个字符的一个索引。

如果你想反向循环一个字符串,你应该在Length - 1.

于 2013-08-22T22:20:50.693 回答