【发布时间】:2018-05-07 18:38:33
【问题描述】:
这段代码应该取两个样本一个原始的和一个新的,然后确定插入到第一个序列中的最小单个连续片段的长度。
在尝试一些示例时,我收到以下错误消息:
System.ArgumentOutOfRangeException: '索引和长度必须引用一个 放在字符串中。参数名称:长度
代码如下:
class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetSample());
Console.ReadKey();
}
public static int GetSample()
{
string sample1 = Console.ReadLine();
string sample2 = Console.ReadLine();
if (sample1 == sample2) return 0;
if (sample1.Length >= sample2.Length)
{
for (int i = 0; i < sample2.Length; i++)
{
if (!(sample1[i] == sample2[i]))
{
sample1 = sample1.Substring(i, sample1.Length);
sample2 = sample2.Substring(i, sample2.Length);
break;
}
}
int var = sample1.Length - sample2.Length;
for (int i = sample2.Length - 1; i >= 0; i--)
{
if (sample2[i] == sample1[i + var])
sample2 = trimlast(sample2);
}
}
else
{
for (int i = 0; i < sample1.Length; i++)
{
if (!(sample1[i] == sample2[i]))
{
sample1 = sample1.Substring(i, sample1.Length);
sample2 = sample2.Substring(i, sample2.Length);
break;
}
}
int var = sample2.Length - sample1.Length;
for (int i = sample1.Length - 1; i >= 0; i--)
{
if (sample2[i + var] == sample1[i])
sample2 = trimlast(sample2);
}
}
return sample2.Length;
}
public static string trimlast(string str)
{
return str.Substring(0, str.Length - 1);
}
}
}
【问题讨论】:
-
错误信息看不懂怎么办?这听起来不言自明。
-
当然是梅森,我想我一定遗漏了一些很明显的东西:(
-
你还没有回答我的问题。您不理解错误消息的哪一部分?
-
是的,它确实指出了它失败的地方,这是我从朋友那里得到的代码,我只是想弄清楚如何开始工作。我想我可以在这里问一些指示!有些人给了我指点,所以我会调查一下!
标签: c# error-handling outofrangeexception