私は簡単な電卓アプリを書いています。ステートメントを評価する前に、括弧が正しくフォーマットされていることを確認します。最初に、開き括弧(
と閉じ)
括弧の数が同じであることを確認します。存在する場合は、それらが正しい順序であることを確認します。
これとは異なり: 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
これを修正する方法はありますか?それとも、括弧を完全にチェックするより良い方法がありますか?
どんな助けでも大歓迎です。