1
有沒有辦法解析在字符串中的運算符用於方程?解析字符串與公式vb
例:「5 + 4」
在這種情況下,5個和4是字符串,但我可以通過使用一個for循環他們解析到整數,是嗎?但是+運營商呢?
好吧,我用ChrisF的解決方案
有沒有辦法解析在字符串中的運算符用於方程?解析字符串與公式vb
例:「5 + 4」
在這種情況下,5個和4是字符串,但我可以通過使用一個for循環他們解析到整數,是嗎?但是+運營商呢?
好吧,我用ChrisF的解決方案
的海報似乎已經解決了他的問題,但以防萬一有人發現這個帖子找我做了一個非常簡單的解決答案。
Dim s As String = "5 * 4" 'our equation
s = s.Replace(" ", "") 'remove spaces
Dim iTemp As Double = 0 'double (in case decimal) for our calculations
For i As Integer = 0 To s.Length - 1 'standard loop
If IsNumeric(s(i)) Then
iTemp = Convert.ToInt32(s(i)) - 48 'offset by 48 since it gets ascii value when converted
Else
Select Case s(i)
Case "+"
'note s(i+1) looks 1 index ahead
iTemp = iTemp + (Convert.ToInt32(s(i + 1)) - 48)'solution
Case "-"
iTemp = iTemp - (Convert.ToInt32(s(i + 1)) - 48)'solution
Case "*"
iTemp = iTemp * (Convert.ToInt32(s(i + 1)) - 48)'solution
Case "/"
'you should check for zero since x/0 = undefined
iTemp = iTemp/(Convert.ToInt32(s(i + 1)) - 48)'solution
End Select
Exit For 'exit since we are done
End If
Next
MsgBox(iTemp.ToString)
這只是一個簡單的快速和骯髒的解決方案。我在學校學習的方式(許多月前)是用堆棧來完成這些類型的問題。複雜的數學字符串可以使用堆棧進行分析。
+1提堆! – 2013-02-17 03:40:30
你必須標記字符串,然後對運算符進行顯式檢查:'if(token ==「+」)'等等。 – ChrisF 2013-02-16 22:59:53
基本上就是這樣,是的。 – ChrisF 2013-02-16 23:06:07
如果每個操作員都有點擊按鈕事件,我將如何使用令牌部分? – toilabav90 2013-02-16 23:06:23