这是我的代码,当我运行它时,索引超出了行b = Asc(y(j + m))中数组的范围。我尝试过Try and Catch,但它没有成功。
Public Function SMITH(x, y, SX, SY)
Dim a, b, j As Integer
result = 0
m = x.Length
n = y.Length
preBmBc(x)
preQsBc(x)
j = 0
While (j <= (n - m))
If (SX = SY.ToString.Substring(j, m)) Then
result = 1
End If
a = Asc(y(j + (m - 1)))
b = Asc(y(j + m))
j = j + Math.Max(bmBc(a), qsBc(b))
End While
Return result
End Function
答案 0 :(得分:0)
你有没有尝试为b制作m =“m-1”?您确实需要使用断点和调试器逐步执行代码,以确定程序何时抛出OutOfRangeException。