js和java将字符串转成算术表达式

Posted 凉夏。°空城旧梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js和java将字符串转成算术表达式相关的知识,希望对你有一定的参考价值。

====>java

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public static void test1() throws ScriptException {
  String str = "(a >= 0 && a <= 5)";
  ScriptEngineManager manager = new ScriptEngineManager();
  ScriptEngine engine = manager.getEngineByName("js");
  engine.put("a", 6);
  Object result = engine.eval(str);
  System.out.println("结果类型:" + result.getClass().getName() + ",计算结果:" + result);
}
public static void test2() throws ScriptException {
  String str = "43*(2 + 1.4)+2*32/(3-2.1)";
  ScriptEngineManager manager = new ScriptEngineManager();
  ScriptEngine engine = manager.getEngineByName("js");
  Object result = engine.eval(str);
  System.out.println("结果类型:" + result.getClass().getName() + ",计算结果:" + result);
}


public static void main(String[] args) {
  try {
    test1();
    test2();
  } catch (ScriptException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }
}

 

jdk1.6中可以直接这样用

 

=========>js

<input type="text" id="text1" value="4" />
<input type="text" id="text2" value="9" />
<input type="text" id="text3" value="5" />
<input type="text" id="text4" value="6" />
<input type="text" id="text5" value="2" />
<input type="button" value="计算" onclick="func();" />
<script type="text/javascript">
function func() {
    var str = "(A+B+C)*D/E";
    var A = parseFloat(document.getElementById("text1").value);
    var B = parseFloat(document.getElementById("text2").value);
    var C = parseFloat(document.getElementById("text3").value);
    var D = parseFloat(document.getElementById("text4").value);
    var E = parseFloat(document.getElementById("text5").value);
    var num = eval(str);
    alert(num);   
}
</script>

 例如:

 

以上是关于js和java将字符串转成算术表达式的主要内容,如果未能解决你的问题,请参考以下文章

当对象只有最终字段时,如何编写递归方法来生成算术序列?

Java 计算数学表达式(字符串解析求值工具)

JS字符串转成数学表达式

怎么把json字符串转成数组对象

web代码片段

通过 Java 正则表达式提取 semver 版本字符串的片段