长话短说,直接进入正题。
首先是对于用户输入的字符进行过滤,滤掉那些我们目前认为非法的字符。目前我的程式提供+、-、*、/、^、(、)以及数字(包括小数),所以我们就把那些不要的去掉。大家不要害怕啊,到后面大家会发现,我们思路的漏洞导致了对于小数、^乘方的解决方案。
怎么过滤呢,我用了一个比较垃圾且猥琐的方法--没用的就删掉,个人认为唯一的优点就是简单、且不顾用户生死感受。
那么该怎么去实现呢?
就是对输入的字符串s进行扫描,如果不是合法字符就删掉。那么我们如何存储合法字符呢?很简单就是用一个数组。
n:
=
length[expression]
for
i:
=
n downto
1
do
if
expression[i] is the illegal character then
delete the character i
-
th in the expression
return
expression
以上我是采用类PASCAL的伪代码编写的,大家可以根据自己使用的语言进行改造。
大家要注意一点就是为什么我们是从后面往前面去删除那些非法字符呢?这个留给大家自己思考,我提供几个测试样例:
1
+t2*
4
t is the illegal character
1
+ttt2*
4
the three t is the illegal characters
the result is
1
+
2
*
4
大家可以自己测试一下这些数据,对于前面那个应该是没有什么问题的,至于后面那个如果处理不当可能会出现没有过滤完全的问题。
如果顺序不当可能会导致错误甚至是抛出异常。
最后提醒大家注意:边界问题!!!
关于如何制作合法字符表:
就是建立一个数组,初始化数据,使用时就是遍历一遍这个表就好了。
'0','1','2','3','4','5','6','7','8','9','.','^','*','/','+','-','(',')'
分享到:
相关推荐
java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器
JAVA计算器计算器有点小问题JAVA计算器计算器
加法运算计算器java版加法运算计算器java版加法运算计算器java版加法运算计算器java版加法运算计算器java版
java计算器java计算器java计算器
利用java实现简易计算器,java源代码,利用java实现简易计算器
该程序是一款类似与windows自带的计算器的简单版,是用GUI设计的,除了四则运算之外,还有平方,开方,求倒数,求余数的等计算功能,修复一个bug
这是我用JAVA模仿WINDOWS附件中的CACULATOR写的计算器,希望大家共同完善!
学校派去实习,竟然培训java,本来不想那么快学java的,没办法,好像我学一种新语言就要编计算器,当然其实我还是最喜欢C++。这个计算器用java语言编写的,本来在eclipse上开发,但后来转移到自己笔记本上用的时候用...
高度模仿微软计算器用java开发的 分为标准版和科学版的
用JAVA制作的计算器用JAVA制作的计算器
一个java的计算器一个java的计算器一个java的计算器一个java的计算器一个java的计算器一个java的计算器
Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器
简易的JAVA计算器
用JAVA SWING制作的计算器小程序 可以供初学JAVA的人使用参考
该资源为Java版计算器。在该计算器当中可能还有许多bug。请多谅解。
Java-计算器源码 Java写的计算器源码 包含加减乘除, 括号等运算 此代码仅供学习 不得用于任何商业用途 谢谢大家合作
请下载java netbeans 科学计算器(最终版)可BAIDU,可csdn 搜请下载java netbeans 科学计算器(最终版)可BAIDU,可csdn 搜请下载java netbeans 科学计算器(最终版)可BAIDU,可csdn 搜请下载java netbeans 科学...
使用FlowLayout、GridLayout和BorderLayout的面板设置计算器。
计算器源码 计算器java android计算器