简单的循环,不那么简单的错误

本文关键字:简单 错误 循环 | 更新日期: 2023-09-27 18:28:46

我遇到了一个让我发疯的错误。。。我找不到这个代码有什么问题,有人能帮我吗?


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参数名称:length中的System.String.Substring(Int32 startIndex,Int32长度)[0x0000]:0位于Program.Main(System.String[]args)[00x00000],位于:0 中

提前感谢您的帮助!

简单的循环,不那么简单的错误

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

应该是

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

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

如果您想在字符串中反向循环,您应该在Length - 1处启动迭代器。