0

私は簡単な電卓アプリを書いています。ステートメントを評価する前に、括弧が正しくフォーマットされていることを確認します。最初に、開き括弧(と閉じ)括弧の数が同じであることを確認します。存在する場合は、それらが正しい順序であることを確認します。

これとは異なり: 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

これを修正する方法はありますか?それとも、括弧を完全にチェックするより良い方法がありますか?

どんな助けでも大歓迎です。

4

1 に答える 1