我有一个这样的字符串:2899 8761 014 00:00:00 06/03/13 09:35 G918884770707
。我必须从这个给定的字符串中取出子串G918884770707
。我知道子串的开始,所以我把子串的结尾作为整个字符串的长度,如下所示:
No = line.Substring(Start,End);
此处Start的值为39
,主字符串的长度为52
,因此这是End的值。
这会导致错误:
索引和长度必须引用子字符串
中字符串错误中的位置
如何解决此问题?
答案 0 :(得分:12)
您误解了Substring
的参数 - 它们不是开始和结束(因为它们是Java),它们重新开始并且长度
所以你想要:
No = line.Substring(Start, End - Start);
来自文档:
<强>参数强> 的startIndex
输入:System.Int32
此实例中子字符串从零开始的起始字符位置。长度
输入:System.Int32
子字符串中的字符数。返回值
输入:System.String
一个字符串,相当于在此实例中以startIndex开头的长度为length的子字符串,如果startIndex等于此实例的长度且长度为零,则为Empty。
始终,请务必阅读文档 - 特别是如果您获得了一些您不了解的例外情况。