Visual在此函数中抛出一个IndexOutOfRangeException:
public static string ExtractString(string path, string startString, char endChar)
{
string content = File.ReadAllText(path);
/*at this line*/return content.Split(new string[] { startString }, StringSplitOptions.None)[1].Split(endChar)[0].Trim();
}你知道我在这里做错什么了吗?
发布于 2014-09-16 02:05:04
这是一种奇怪的方法,但我用自己的一些样本输入进行了测试,在预期的情况下,它可以正常工作。
当找不到startString时就会出现问题,因为来自第一个string.Split的结果数组将包含一个元素(原始输入字符串)。当您试图在endChar上拆分第二个元素时,没有第二个元素可供查找,这是您的异常。
我确信有更优雅的方法可以做到这一点,但如果找不到startString或endChar,则返回startString或endChar:
public static string ExtractString(string content, string startString, char endChar)
{
int i, j;
i = content.IndexOf(startString);
if (i == -1)
return null;
else
i += startString.Length; // Start at char after startString
j = content.IndexOf(endChar);
if (j == -1)
return null;
return content.Substring(i, j - i);
}https://stackoverflow.com/questions/25859574
复制相似问题