長話短說,直接進入正題。
首先是對于用戶輸入的字符進行過濾,濾掉那些我們目前認為非法的字符。目前我的程式提供+、-、*、/、^、(、)以及數字(包括小數),所以我們就把那些不要的去掉。大家不要害怕啊,到后面大家會發現,我們思路的漏洞導致了對于小數、^乘方的解決方案。
怎么過濾呢,我用了一個比較垃圾且猥瑣的方法--沒用的就刪掉,個人認為唯一的優點就是簡單、且不顧用戶生死感受。
那么該怎么去實現呢?
就是對輸入的字符串s進行掃描,如果不是合法字符就刪掉。那么我們如何存儲合法字符呢?很簡單就是用一個數組。





以上我是采用類PASCAL的偽代碼編寫的,大家可以根據自己使用的語言進行改造。
大家要注意一點就是為什么我們是從后面往前面去刪除那些非法字符呢?這個留給大家自己思考,我提供幾個測試樣例:







大家可以自己測試一下這些數據,對于前面那個應該是沒有什么問題的,至于后面那個如果處理不當可能會出現沒有過濾完全的問題。
如果順序不當可能會導致錯誤甚至是拋出異常。
最后提醒大家注意:邊界問題!!!
關于如何制作合法字符表:
就是建立一個數組,初始化數據,使用時就是遍歷一遍這個表就好了。
'0','1','2','3','4','5','6','7','8','9','.','^','*','/','+','-','(',')'
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
