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 的第一个参数是开始位置

substring 的第二个参数是长度,而不是结束位置

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# 的 substring 方法中的第二个参数是长度,在最后两个示例中,没有多少字符可以作为子字符串。

于 2013-10-12T13:26:32.787 回答