在字符串操作上使用子字符串

时间:2013-10-12 13:09:44

标签: c# string

我的字符串长度为66

然后我用这个显示它:

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

为什么我会收到错误的说法。索引和长度必须指向字符串中的位置。 参数名称:长度

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

好吧,

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);

答案 1 :(得分:0)

C#的substring方法中的第二个参数是length,在最后两个例子中,没有那么多的字符可以用来获取子字符串。