我正在编写一个简单的计算器应用程序,在评估语句之前,它会检查以确保任何括号的格式正确。它最初检查是否存在相同数量的左括号(
和右)
括号。如果有,那么它将检查它们的顺序是否正确。
不像这样:6) / (1 + 4)8 + (5
。
为此,我使用了以下代码:
Chkp("(1+1/2)+(2+3)")
这将调用:
Function ChkP(text As String)
For i As Integer = 0 To CountOf(text, "(") - 1
If CharIndex(text, "(", i) > CharIndex(text, ")", i) Then Return False
Next
Return True
End Function
然后会调用:
Function CharIndex(text As String, character As String, ByRef index As Integer)
For x As Integer = 0 To text.Length - 1
If text(x) = character Then
index -= 1
If index = -1 Then
Return x
End If
End If
Next
Return -1
End Function
如果Chkp
应该返回False
括号是错误的,否则它们是正确的,但是,输出总是括号是无效的,即使是正确的。
有没有办法来解决这个问题?还是有更好的方法来完全检查括号?
任何帮助是极大的赞赏。