0

文字列の長さが66の文字列があります

次に、これを使用して表示します。

string.Substring(0, 20);
string.Substring(21, 40);
string.Substring(41, 60); --Error here
string.Substring(61, string.Length)

というエラーが表示されるのはなぜですか。インデックスと長さは、文字列内の場所を参照する必要があります。パラメータ名: 長さ

何か案は?ありがとう!

4

2 に答える 2

1

良い、

部分文字列の最初の引数は開始位置です

substring の 2 番目の引数は長さであり、終了位置ではありません

41 + 60 = 101=> 66 を少し超えています。

あなたが使用する必要があります

string.Substring(0, 20);
string.Substring(21, 20);
string.Substring(41, 20); 
string.Substring(61, 5);

編集 :

const int Length = 20;
var str = "myString";
var i = 0;
var list = new List<string>();
do {
  list.Add(str.Substring(i *Length, Math.Min(str.Length - (i*Length), Length)));
  i++;
}while (str.Length > i*Length);
于 2013-10-12T13:17:59.110 に答える
0

C# の部分文字列メソッドの 2 番目のパラメーターは長さです。最後の 2 つの例では、部分文字列を取得する文字があまり残っていません。

于 2013-10-12T13:26:32.787 に答える