如题。又来麻烦大家了。例子是这样的:
首先是一个值a(是变化的)
b的公式是在控制台输入的:比如:(a+3)*9/(a+4)最后的问题是:如何通过指定a的值获取b,或者指定b的值获取a.
谢谢了!

解决方案 »

  1.   

    b=(a+3)*9/(a+4)通过输入a计算b还是好做的,用脚本引擎就好了反过来不容易
      

  2.   

    最好在a和b两个输入框后加一个计算按钮,按a旁的按钮计算b,按b旁的按钮计算b.
      

  3.   

    for example
    jdk1.6以上String exp = "(a+3)*9/(a+4)"; //公式
    String a = "5"; //设置a
    exp = exp.replaceAll("a", a);
    ScriptEngine se = new ScriptEngineManager().getEngineByName("javascript");
    Object b = se.eval(exp);
    System.out.println(b);
      

  4.   

    反过来的话,就把a的公式求出来
    b=(a+3)*9/(a+4)  -->  a=(4b-27)/(9-b)
    String exp = "(4b-27)/(9-b)"; //公式
    String b = "8"; //设置a
    exp = exp.replaceAll("b", b);
    ScriptEngine se = new ScriptEngineManager().getEngineByName("javascript");
    Object a = se.eval(exp);
    System.out.println(a);
      

  5.   

    自己编写的话,可以使用栈来解决计算符号优先级的问题。  我记得严蔚敏版的《数据结构》里面讲了这个算法,我当时还自己写了个计算复杂运算式的算法,算式可以包含sin,cos等。
      

  6.   


    没接触过类似的东西,可以给个demo或者demo的链接吗?
      

  7.   

    简单的,a算b的代码我这里没有,我这里只有复杂的,楼主要是有兴趣和精力,可以看看
    从C语言转换过来的Java版,字符串代数运算器