2013-07-21 97 views
-2

我目前正在編寫一個計算器應用程序。這個應用程序的一部分是一個簡單的計算器,就像Windows中的計算器(使用Windows 8)一樣工作。它可以解析在文本框中輸入的數字。但是,如果用戶沒有輸入正確的格式,例如5 * * 5,則會發生錯誤。我希望它能檢查之前輸入的字符,看看它是否是一個操作符,如果是,則將其替換爲5 */5,以便在用戶輸入時變爲5/5。還需要檢查括號是否正確,例如()或()不是)(。另外需要檢查的是輸入的數字只有一個小數點,例如4.38585 + 5.32948 。我已經將關鍵條目限制爲只有數字和運營商。我已經檢查過一段時間了,但還沒有看到任何解決方案。C#計算器文本輸入驗證

+3

給我們展示一些代碼 – Thousand

+2

顯示一些你的代碼 – 2013-07-21 11:34:32

+2

看起來你有點懶惰,因爲要求我們做你的工作,你知道你需要什麼,只是問我們......如果你會爲操作設置一個字符,並在你得到新的時候改變它操作字符然後你可以處理5 */5字符串 –

回答

1

如果您要允許用戶輸入表達式,然後讓他按一個「計算」按鈕,那麼你不應該在飛行中驗證事情,讓用戶犯錯誤,因爲他會反正,用戶會想回去編輯他輸入的文本,你的編輯規則會使這個困難或者更糟,不一致

例如,假設用戶輸入4.35*7.29

然後他意識到他想分化。但是您的編輯規則不會讓他刪除*,因爲這會導致無效號碼。而且他不能首先輸入/然後刪除,因爲這樣做會給/**/,這兩者都是無效的。你打算在編輯時允許臨時無效表達式,但在用戶輸入時不允許它?這會不一致,並且不會阻止您的評估者再次執行錯誤檢查並通知用戶。

如果您願意,可限制對數字和運算符的擊鍵,但不要嘗試驗證用戶輸入內容的形式。讓他輸入**)9(//如果他願意,在解析時處理錯誤 - 在用戶按下計算按鈕之後

現在,如果您的應用程序像Windows Calculator一樣工作,這是一個不同的問題,但是你說的只是令人沮喪,我當然不想使用它