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 パラメータ名: length at System.String.Substring (Int32 startIndex, Int32 length) [0x00000] in :0 at Program.Main (System.String[] args) [ 0x00000] in :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インデックスが付けられるため、長さは文字列の最後の文字の 1 インデックス後ろになります。

文字列を逆方向にループしたい場合は、イテレータを から開始する必要がありますLength - 1

于 2013-08-22T22:20:50.693 に答える