有经验的帮帮忙,不知道有没有现成的程序?需求是这样的,我这里简化一下。
比如一个界面上有一些按钮,按钮上写着“A”、“B”,“C”,“D”,
还有一些运算符号,比如“+","-","*","/","(",")"。
这样就是允许用户自己组装一个运算公式,比如依次点A,*,C,+,(,B,+,D,)
这样就是A*C+(B+D)的公式,当然,用户可以任何组合一个有效的公式。
公式组合完后,我需要把值代进去,然后得出结果,比如A=2,B=3,C=4,D=5的话,
结果就是2*4+(3+5)=16。
这只是比较简单的公式,我这里只是为了简化问题的描述。另外甚至还要求有一些条件判断,比如有一些IF、ELSE,>,<=之类的按钮,这样就更复杂了,
不知道有没有现成的程序?如果谁帮我彻底解决这个问题,给500分都没问题!
比如一个界面上有一些按钮,按钮上写着“A”、“B”,“C”,“D”,
还有一些运算符号,比如“+","-","*","/","(",")"。
这样就是允许用户自己组装一个运算公式,比如依次点A,*,C,+,(,B,+,D,)
这样就是A*C+(B+D)的公式,当然,用户可以任何组合一个有效的公式。
公式组合完后,我需要把值代进去,然后得出结果,比如A=2,B=3,C=4,D=5的话,
结果就是2*4+(3+5)=16。
这只是比较简单的公式,我这里只是为了简化问题的描述。另外甚至还要求有一些条件判断,比如有一些IF、ELSE,>,<=之类的按钮,这样就更复杂了,
不知道有没有现成的程序?如果谁帮我彻底解决这个问题,给500分都没问题!
然后对这个字符串进行解析,
所先要判断这个字符串是不是正确的,
然后,按照运算的优先级的逆顺序进行处理
function0 :找匹配的(),将结果替换回来
function1 :找+,把这个字符串分成若干个和的子部分,然后对各个子部分进行处理
function2: 找-,把字符串分成若干个子部分的减
function3: 找*, 把字符分解为各个部分的*
function4: 找/,把字符分解为各个部分的/mainfunction(oper_string){
//如果oper_string是数字就直接return了
oper_string = function0(oper_string);
oper_string = function1(oper_string);
oper_string = function2(oper_string);
oper_string = function3(oper_string);
oper_string = function4(oper_string);
}
function1{
//得到+的各个部分string[] adds,是数字要处理
for(i=0;i<adds.length....){
mainfunction(adds[i]);子部分也需要做对应的处理
}
}你自己多想想吧,我想上面的肯定能完成
谢谢楼上各位,继续欢迎提供现成的JAR。
使用“栈|stack”不是能很方便的解决嘛!~
IF A>100 THEN
A*B+(C+D)
ELSE
A*B/(C+D)
ENDIF而且IF之类要用中文,就是
如果 A>100 则
...