【问题标题】:Index and length must refer to a location within the string error in substring索引和长度必须引用子字符串中的字符串错误中的位置
【发布时间】:2014-11-22 20:05:03
【问题描述】:

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

 No = line.Substring(Start,End);

这里 Start 的值是 39,主字符串的长度是 52 所以这是 End 的值。

这会导致错误:

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

我该如何解决这个问题?

【问题讨论】:

  • string Substring(int startIndex, int length) 不是string Substring(int startIndex, int endIndex)

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


【解决方案1】:

您误解了 Substring 的参数 - 它们不是 start 和 end(就像在 Java 中一样),它们是 start 和 length。

所以你想要:

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

来自文档:

参数 开始索引
类型:System.Int32
此实例中子字符串的从零开始的起始字符位置。

长度
类型:System.Int32
子字符串中的字符数。

返回值
类型:System.String
在此实例中与从 startIndex 开始的长度 length 的子字符串等效的字符串,如果 startIndex 等于此实例的长度且长度为零,则为 Empty。

始终,始终阅读文档 - 特别是当您遇到不理解的异常时。

【讨论】:

    猜你喜欢
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多