文字列の長さが66の文字列があります
次に、これを使用して表示します。
string.Substring(0, 20);
string.Substring(21, 40);
string.Substring(41, 60); --Error here
string.Substring(61, string.Length)
というエラーが表示されるのはなぜですか。インデックスと長さは、文字列内の場所を参照する必要があります。パラメータ名: 長さ
何か案は?ありがとう!
良い、
部分文字列の最初の引数は開始位置です
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);
C# の部分文字列メソッドの 2 番目のパラメーターは長さです。最後の 2 つの例では、部分文字列を取得する文字があまり残っていません。