java中实现数学表达式计算时如果涉及到数学函数是怎么将函数看作一个整体?如何将函数的括号和一般的括号区别开来?如何区别减号和负号?
比如我想计算{3*(2+8)-4}+6-sin(30)
将中缀转换成后缀时,如何知道将sin(30)看作一个整体,即一个操作数,它中不是含有括号吗?
我们不能把它里面的括号看成普通的括号,我们怎样知道当出现s是函数开始,闭括号时函数结束?

解决方案 »

  1.   

    汗~~~~lz以前没接触过程序吗!
    java的括号跟数学表达式中的括号没区别~~
    只不过在java中有自己定义的优先级,
    并且这些运算符优先级跟数学表达式中的优先级类似~
      

  2.   

    lz是不是想自己写个编译器?
    我建议你去找java变程艺术这本书,里面通过递归实现的,觉得还不错
      

  3.   

    我就是简单的调用,你可能误解我的意思了!
    比如我想计算:2+(4*6)-abs(-25)
    将中缀变换成后缀时,怎样识别(4*6)中'('是括号,而'abs(-25)'可以看作一个操作数,而不能把它当作一个整体看作函数?
    我的意思就是如何区分这个式子中的括号和函数??
      

  4.   

    多尝试呀,兄弟~~abs()是个函数,括号当然就是个什么啦。
    在式子中无端端出现(),那个就是算术里的括号了,或者一些确定优先级的符号呀。