索引和长度必须引用子字符串中字符串错误中的位置

时间:2014-09-28 07:49:48

标签: c# .net string substring string-length

我有一个这样的字符串:2899 8761 014 00:00:00 06/03/13 09:35 G918884770707。我必须从这个给定的字符串中取出子串G918884770707。我知道子串的开始,所以我把子串的结尾作为整个字符串的长度,如下所示:

 No = line.Substring(Start,End);

此处Start的值为39,主字符串的长度为52,因此这是End的值。

这会导致错误:

  

索引和长度必须引用子字符串

中字符串错误中的位置

如何解决此问题?

1 个答案:

答案 0 :(得分:12)

您误解了Substring的参数 - 它们不是开始和结束(因为它们是Java),它们重新开始并且长度

所以你想要:

No = line.Substring(Start, End - Start);

来自文档:

  

<强>参数   的startIndex
  输入:System.Int32
  此实例中子字符串从零开始的起始字符位置。

     

长度
  输入:System.Int32
  子字符串中的字符数。

     

返回值
  输入:System.String
  一个字符串,相当于在此实例中以startIndex开头的长度为length的子字符串,如果startIndex等于此实例的长度且长度为零,则为Empty。

始终,请务必阅读文档 - 特别是如果您获得了一些您不了解的例外情况。